01/ 9 — 高光譜 × Python × Orange
一張照片,能告訴你
食物裡有多少水、多少糖嗎?
普通照片只有 RGB 三通道;高光譜每個像素記錄數百個波段——看見肉眼看不見的化學
02/ 9 — 資料立方體
高光譜資料 = 空間 × 空間 × 光譜
一般照片 RGB 3 個波段 高光譜立方體 數百個波段 單一像素的光譜曲線 = 化學指紋

一般彩色影像,每個像素只有 3 個數字(紅綠藍)。

高光譜影像則是一個資料立方體:兩個空間維度 + 第三個維度的數百個連續波段

從任何一個像素,都能取出一條完整的光譜曲線——那就是那個位置的化學指紋。

03/ 9 — 真實開源資料集
真實資料集:SpectroFood(Zenodo 開源)
🍎
蘋果 Apple
240 樣本
🥦
花椰菜 Broccoli
250 樣本
🧅
韭蔥 Leek
288 樣本
🍄
蘑菇 Mushroom
250 樣本

1028 筆 Vis-近紅外光譜 + 乾物質含量

⚠️ 真實資料的第一課

  • 不同食材是用不同相機量的
  • 波段範圍不一樣:蘋果到 773nm、
    韭蔥延伸到 1717nm
  • → 取四種食材共同的 141 個 Vis 波段(398–773nm)才能公平比較

真實資料總是有點「髒」——清理它,是分析的第一步。

04/ 9 — 光譜指紋 + 預處理
每種食材,都有自己的光譜指紋
spectral signatures

左:四食材原始反射光譜(平均±標準差),形狀各異=指紋。 右:SNV 標準常態變量標準化後,消除表面散射、量測距離造成的平移,凸顯真正的化學差異

05/ 9 — 降維 PCA
PCA:141 個波段 → 2 個就夠
PCA

141 個波段高度相關。主成分分析 PCA 後,前兩個主成分就抓住 94.6% 變異。把 PC1-PC2 畫成散布圖,四種食材自動分成四群——還沒分類,資料自己就攤牌了。

06/ 9 — 分類 SVM
分類:100% 準確率——但這代表什麼?
confusion matrix

SVM / 隨機森林

100%

測試集 257 筆,對角線全中、零誤分。

⚠️ 別急著高興:四種食材差異這麼大,100% 代表這題太簡單了。

真正困難、更有價值的,是下一個任務——定量預測

07/ 9 — 迴歸 PLS(真功夫)
迴歸:從光譜預測乾物質含量
PLS regression

PLS 偏最小平方迴歸

R²=0.84

韭蔥完整光譜(含 NIR 至 1717nm),10-fold 交叉驗證,RMSE 僅 0.96%。

定性「是哪種」容易;定量「含多少」才難。

近紅外能感應水分與有機物吸收——這正是真實食品品管在用的技術。

08/ 9 — Orange Data Mining
不想寫程式?Orange 拉一拉就完成
📄File 🌊Preprocess Spectra 📉PCA 📈PLS(迴歸) SVM /Random Forest 🔵Scatter Plot Test & Score交叉驗證 ConfusionMatrix

開源 Orange Data Mining + Spectroscopy 外掛:用滑鼠把 widget 連起來——讀檔 → 預處理光譜 → PCA / PLS / 分類 → 測試評分 → 混淆矩陣。同樣的科學,零程式碼。

09/ 9 — 帶走一句話
高光譜
讓你看見肉眼看不見的化學
要完全控制與彈性 → 用 Python;要快速、視覺化、不寫程式 → 用 Orange
同一套科學,兩條路徑,由你選擇。