用 Python 做灰色預測、特徵比較與 PCA 分析。
Documentation · 快速開始 · 操作介面 · 效能測試
預測一段數值、找出與目標較相關的特徵,或整理光譜與製程量測。可以直接寫 Python,也可以從專案附的 HTML 介面開始。
- Grey + PCA 整合分析:
GreyPCA結合六種 PCA 與 GRA 主成分篩選。先用 PCA 整理樣本差異;有參考目標時,再用 GRA 評分、篩選較相關的主成分。光譜、圖片與軌跡也能先擷取 Grey 窗口特徵,再交給 PCA,將局部變化一起納入分析。 - 預測數值:GM11 與兩層 Convolution;有序多變量資料可用 GM0N/GM1N。
- 比較與排序:GRA 特徵排序,以及望大/望小/目標值的品質評分。
- 整理大量特徵:六種 PCA、原始計數的 PoissonPCA、Grey 窗口、圖片與多維軌跡。
需要 Python 3.11 以上。下載或 clone 專案後,在專案目錄執行:
python3 run.pyTip
第一次會建立 .venv 並安裝相依套件;之後用同一個指令即可。Windows 將 python3 改成 python。
先安裝到你自己的程式所使用的 Python 環境:
python -m pip install .from greytheory import GM11
series = [223.3, 227.3, 230.5, 238.1, 242.9, 251.1]
model = GM11(background_mode="corrected").fit(series)
print(model.predict(2))舊用法 model.forecast(2) 與 model.forecast_convolution(1, 4) 也可使用。只要接下來兩筆數值時用 predict(2);forecast(2) 會重新計算已存資料並更新預測期數設定。
在 GreyPCA 指定 method,操作介面也能選同樣的方法。
from greytheory.analysis import GreyPCA
features = [[1.0, 2.0, 0.8], [1.5, 2.4, 1.2],
[2.0, 3.1, 1.1], [2.5, 3.4, 1.8]]
model = GreyPCA(n_components=2, method="pca", standardize=True)
components = model.fit_transform(features)
print(components)| 方法 | 適合先試的情況 |
|---|---|
"pca" |
標準線性投影;不知道選什麼先用它。 |
"sparse" |
希望成分係數較稀疏。 |
"kernel" |
想探索非線性的資料關係。 |
"robust" |
先做 PCP 低秩拆解,再投影。 |
"robust_sparse" |
同時考慮稀疏編碼與訓練擾動。 |
"adv" |
想測試指定擾動條件下的投影。 |
非負原始計數另有 PoissonPCA。參數、主成分篩選,以及 GRA 和 PCA 排序的差別,都放在完整使用說明裡。 → GreyPCA
workbench 會開啟 GreyTheory 的圖形分析介面。可載入光譜、DOE 或筆跡圖片,選擇分析方法與參數,再查看圖表和特徵排序:
python3 run.py workbench第一次會建立 .venv 並安裝分析與視窗套件,之後沿用同一環境。分析在本機執行,不需要架設伺服器。
也可以雙擊專案附的 HTML 看離線預覽;內建展示是預先計算的結果。要套用新設定,請使用上述指令,或交換請求/結果 JSON。
HTML · 看附截圖的操作說明 · 操作手冊與檔案格式 · 光譜入門
右上角可切換繁體中文、English、日本語;切換時會保留目前的資料、參數與結果。
PVD 示範:15 筆合成實驗。左圖看樣本差異,右邊依選取目標比較製程參數。
資料入口:data/demo/ 放展示資料,data/test/ 放自己的測試檔案(不上傳 GitHub)。
所有展示資料集中在 data/demo/。不知道該選哪個檔案時,先開 Demo 資料包入口,裡面列出對應的操作頁與步驟。
現場展示:執行 python3 run.py workbench,進入「應用實驗室」→「藝術品」情境。先用 seed 7、PCA、3 個成分、門檻分位 0.95、材料強度 0.6 執行。左圖看誤差與圈選位置,右圖核對刻意變更的 18 個位置。接著把門檻改為 0.99 重跑;再恢復 0.95,把強度降為 0.2 重跑。保持相同 seed,逐次下載結果 JSON。介面操作手冊也有完整步驟。
這是合成光譜地圖的差異展示,不是上傳作品照片。此情境尚無真實參考/待測地圖成對匯入功能;標記區需要由修復專家查驗,不能直接當作補畫或真偽結論。
AI 絹畫圖片 — 在「應用實驗室」→ 藝術品情境,把「示範資料來源」切到 AI 絹畫圖片,按預設值執行。程式會讀取兩張 PNG,經區塊特徵 → Grey 窗口 → GreyPCA 計算。關閉/開啟標記比較畫面,再把門檻改成 0.99 重跑。
圖片、實際 CSV/JSON 與案例來源 · python3 run.py artwork
開啟專家查看與實測報告 — 成對圖片用來排查驗順序;光譜用獨立正常資料校準門檻,再搭配實物檢查。實測也加入同圖負對照:舊重建誤差圈選數不能當成變更數。展示可選葉片、花瓣、鳥身與背景,逐區查看觀察、假設和下一步檢查;內容是依公開專業流程撰寫的模擬判讀。
介面內也有配送路線、司機媒合、藝術品光譜差異、訂單量預測、多維軌跡、光譜與半導體工具;圖片頁可比較 AI 筆跡或自己的圖片。
Note
展示資料均為合成資料,用來試流程,不能當成實務準確率。配送與媒合由專用演算法搜尋,Grey 負責偏好評分;圖片距離不能判定作者,藝術品異常則是進一步查驗的線索。
快速入口:analyze_features() 一次完成排名穩定性、GreyPCA 回歸搜尋與選用的正常資料校正;choose_options() 用欄位名稱比較多目標方案。
import numpy as np
from greytheory import analyze_features
features = np.random.default_rng(7).normal(size=(120, 4))
target = 2 * features[:60, 0] - features[:60, 1]
result = analyze_features(features[:60], target, normal_data=features[60:90])
predictions = result.predict(features[90:])檢查 GRA 排名穩定性、用另一批正常資料校正差異門檻、自動搜尋 GreyPCA 回歸設定,並保留候選方案的多目標折衷解。
python3 run.py optimize四步驟 Python 用法。合成範例在下載專案後執行。搜尋採有限次隨機試驗與訓練切分快取;驗證分數是調參結果,不是獨立測試準確率。Pareto 結果限於輸入的候選方案。
新增研究版等間隔預測與品質回歸:RL-FGM 公式核心、GINN/FGINN 工程版本,以及獨立設計的 Grey–Fuzzy GPR。
from greytheory import forecast_series
values = [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]
future = forecast_series(values, steps=3, method="rlfgm")
print(future)四種模型都能搭配 pca、sparse、kernel、robust、robust_sparse、adv。時序輸入每列是一個時間點、每欄是一個通道,預測會還原原欄位;改 method 可換 GINN/FGINN。PCA 專用設定放在 pca_params={"method_params": {...}}。
import numpy as np
from greytheory import forecast_series, predict_quality
time = np.arange(24.)
history = np.column_stack([20 + time + np.sin(time), 40 + 0.3*time + np.cos(time)])
future = forecast_series(history, steps=3, method="rlfgm",
pca_method="adv", n_components=2, order=1)
random = np.random.default_rng(7)
features = random.normal(size=(60, 4))
quality = 100 + 5*features[:, 0] + 2*features[:, 1]**2
result = predict_quality(features[:40], quality[:40], features[40:],
pca_method="pca", n_components=2)
print(future, result["prediction"])GUI 選「研究模型 → 搭配 PCA:on」。時序主成分採訓練資料決定的正值平移,這會影響灰色模型;品質可靠度只反映保留的主成分。
python3 run.py research| 文件 | 內容 |
|---|---|
| 看附截圖的操作說明 | 安裝、預覽、即時分析與結果匯入/匯出 |
| GreyPCA | 六種 PCA、參數與主成分篩選 |
| Images / trajectories | 圖片讀取、特徵擷取與比較 |
| Bruker | SPX/BCF 支援範圍與偵測器刻度 |
| 完整使用說明 | 預測、GRA、品質評分、批次執行與文獻 |
python -m pip install -e . -r requirements-dev.txt
python -m pytest -q
python -m buildGreyTheory 中依論文參考開發的演算法為非官方實作(Unofficial implementations),與原作者及其所屬機構沒有隸屬關係,也未獲其背書。參考文獻和其演算法貢獻歸功於原始研究。
若您認為相關實作涉及您的專利、著作權或其他權利,請來信 ilovekalvar@gmail.com,說明權利依據及涉及的演算法或檔案;專利疑慮請附專利號與相關權利項。
我們會審查通知,必要時補正引用、修改、暫停使用或下架相關演算法。收到通知或採取預防措施,不表示承認侵權,在開源世界裡都需要尊重參考文獻的作者貢獻。
Grey 與 PCA 核心文獻
這裡列出 Grey、PCA 與已實作穩健演算法的主要文獻。光譜與製程分析的方法來源見完整使用說明。
- Deng, J. L. (1982). Control problems of grey systems. Systems & Control Letters, 1(5), 288–294.
- Liu, S. & Lin, Y. (2011). Grey Systems: Theory and Applications. Springer. Grey modelling and relational analysis.
- Kayacan, E., Ulutas, B. & Kaynak, O. (2010). Grey system theory-based models in time series prediction. Expert Systems with Applications, 37(2), 1784–1789.
- Jolliffe, I. T. & Cadima, J. (2016). Principal component analysis: a review and recent developments. Philosophical Transactions A, 374, 20150202.
- Candès, E. J., Li, X., Ma, Y. & Wright, J. (2011). Robust Principal Component Analysis?. Journal of the ACM, 58(3), Article 11. Principal Component Pursuit.
- Lin, Z., Chen, M. & Ma, Y. (2010). The Augmented Lagrange Multiplier Method for Exact Recovery of Corrupted Low-Rank Matrices. Inexact ALM solver for PCP.
- Erichson, N. B. et al. (2020). Sparse Principal Component Analysis via Variable Projection, author manuscript. SIAM Journal on Applied Mathematics, 80(2), 977–1002. Robust sparse model: equation (17), Algorithm 2.
- Vävinggren, D. et al. (2026). A Robust Optimization Approach to Sparse Principal Component Analysis. AdvPCA: Algorithms 1–2 and Appendix A.3.
以下論文提供模型定義與研究構想,成果歸原作者。本專案另外加入 PCA 串接、固定主成分平移與快速函式;這些整合設計不冒稱為原論文提出的方法。
- Xu, Zhenguo; Peng, Rui; Pang, Mengyi; Jiang, Jianming; Zhang, Rujing; & Liu, Caixia (2026). A novel grey system model with discrete Riemann–Liouville fractional derivative and its applications. Science Progress, 109(3). RL-FGM 累加算子與響應核心的來源。本專案以格點搜尋及訓練尾段驗證選階數,與原論文的 PSO/MAPE 選階方式不同。
- Xie, Wanli; Zhao, Ruibin; Xu, Zhenguo; & Liang, Tingting (2025). Grey-informed neural network for time-series forecasting. Neurocomputing, 649, 130756. Public preprint, v2 (2024). GINN 與 FGINN 的來源。本專案參考公開預印本,使用不同網路、優化器及預測對先驗的損失,屬工程版本,沒有重現作者實驗。
- Lawal, Ahmad; Yang, Yingjie; Baisa, Nathanael L.; & He, Hongmei (2026). Reservoir permeability prediction using Integrated Grey-Fuzzy Gaussian Process Regression: A comprehensive framework for uncertainty quantification and interpretability. Engineering Applications of Artificial Intelligence, 177, 114777. GRA、GPR 與模糊可靠度結合的概念來源。本專案的核權重與隸屬規則為獨立設計,並非原作者 IGF-GPR 的重現。

