圓州率
🌐

Feature Image

多階段連續製程預測

作品集, 資料科學, 機器學習, 監督式學習
一個多階段連續製程的工廠產線資料集,本實驗透過原料數據與機台參數預測產品輸出規格。
   最後更新:

引言

封面來自 Library of Congress. (1937, March 16). Exterior – Ford Assembly Plant East Side, showing Oil Well #6 in the foreground, northeast of the assembly plant 是福特汽車公司的工廠組裝工廠。

資料來自於 Multi-stage continuous-flow manufacturing process,是一個真實的產線資料,由於資料的匿名性,我們無從得知這是什麼樣的產線,也無從得知當中變數的實際意義。但根據其介紹得知,首先由三台機器平行製造零件,接著經過兩階段的組合零件。目標為預測組合的成品結果,因此我們推測實際目的可能是組合成本較高,若預期成品不佳,則可以提早捨棄此樣本,能省下部分成本。

機台示意圖

生產機 1 ┐
生產機 2 ┼— 組合機 1 — 組合機 2 
生產機 3 ┘

資料介紹

原始資料是一個 14,088 x 116 的表格,其中約有 14,000 個樣本與 116 個特徵,特徵包含:

  • 時間戳
  • 濕度
  • 溫度
  • 生產機 1 至 3 號的 36 個狀態,包含馬達轉速、材料狀態等
  • 組合機 1 的 3 個狀態
  • 組合機 1 的預期測量數值 15 個
  • 組合機 1 的實際測量數值 15 個
  • 組合機 2 的 14 個狀態
  • 組合機 2 的預期測量數值 15 個
  • 組合機 2 的實際測量數值 15 個

其中「預期測量數值」是工廠期待產品的規格,「實際測量數值」是真實生產的產品規格。根據任務描述,首要目標是預測「組合機 1 的實際測量數值 15 個」,為簡化問題先將目標設定為預測「組合機 1 的實際測量數值 1 個」。

經調整後的資料為 14,032 x 42,利用以下資訊:

  • 濕度
  • 溫度
  • 生產機 1 至 3 號的 36 個狀態,包含馬達轉速、材料狀態等
  • 組合機 1 的 3 個狀態

預測「組合機 1 的實際測量數值 1 個 Stage1.Output.Measurement0.U.Actual」。數據展示如下表,部分欄位因命名過長因此重新命名。

HumidityTemperatureMachine1.RawMaterialFeederParameterStage1.Output.Measurement0.U.Actual
17.2423.531241.2612.72
17.2423.531246.0912.34
17.2423.531246.2912.34

探索性資料分析 EDA

為簡化描述,稱預測目標 Stage1.Output.Measurement0.U.Actual 為 $y$,其餘特徵依序稱為 $x_1$ 至 $x_{41}$。

預測目標

首先值得注意的是 $y$ 的時間序列分布,大約有 1% 的異常值。

$y$ 的時間序列圖。

大部分的 $y$ 落在 $12.9 \pm 0.5$ 的區間,占比超過 99%。

正常 $y$ ($\in [12.4, 13.4]$)分布圖。

$y$數量比例
$\geq 13.4$250.0018
$12.4 \sim 13.4$13,9750.9920
$\leq 12.4$880.0062

相關性

異常相關性

每筆「實際測量數值」都有其對應的「預期測量數值」,其中約有 $< 1\%$ 的預期測量數值為 0,其餘 $99\%$ 資料具有相同預期測量數值。在 $y$ 出現過小異常值時,大多都落在預期測量數值設定為 0 時。

另一方面,考慮過大異常發生時的情況,令 $\text{tag}$ 為一個指示是否為過大異常的標籤,並觀察 $\text{tag}$ 與其他變數的相關係數。相關係數圖顯示出 tag 與其他變數的相關係數接近 0。

$$ \begin{align*} \text{tag} = \begin{cases} 1 & \text{if } y > 13.4 \\ 0 & \text{if } y \in [12.4, 13.4] \\ \end{cases} \end{align*} $$

tag (最右側) 與變數相關係數,tag 與其他變數的相關係數接近 0。

變數相關性

觀察各變數與 $y$ 的相關係數,考慮全部資料的相關係數,$y$ 與各變數的相關係數全都接近 0;然而考慮具有正常 $y$ 資料的相關係數,就呈現出明顯的相關性。值得注意的是,具有正常 $y$ 的資料約占 $99\%$ 以上,也就是僅移除 $< 1\%$ 的資料就能使資料具有明顯相關性。

全資料相關係數,$y$ 與其他變數的相關係數接近 0。

具有正常 $y$ 資料的相關係數,$y$ 與其他變數出現明顯相關性。

探索性小結

  • $y$ 存在 $< 1\%$ 的過大與過小異常值。
    • 過小異常值與「預期測量數值」的設定有關。
    • 過大異常值在相關係數與初步的建模中都難以分辨。
  • 全體資料中, $y$ 與其他變數的相關係數皆接近 0。
  • 具有正常 $y$ 資料中,$y$ 與其他變數呈現明顯相關性。

小結,暫且移除異常 $y$。

建立模型

以 5-fold cv 分割資料,線性回歸做為基準模型,與最佳模型 XGBoosts,平均表現如下表

ModelRMSERsquared
Linear0.0760.589
XGBoost0.0440.863

XGBoosts 殘差圖

模型解釋性 SHAP

SHapley Additive exPlanations (SHAP) 是一種解釋模型的方法,啟發自博弈論 (對局論) 的關鍵人物 Lloyd Stowell Shapley 的 Shapley Value。原始的問題描述的是合作賽局理論,是將合作的總收益公平的分配給所有人的方法。

Shapley Value

有 3 個用戶合作產生收益,例如 1 號與 2 號玩家合作收益 (value) 寫成 $v (x_1, x_2) = 50$,其中收益如下

PlayerValue
$x_1$10
$x_2$30
$x_3$5
$x_1, x_2$50
$x_1, x_3$35
$x_2, x_3$40
$x_1, x_2, x_3$100

則 Shaply value 計算方式為「考慮新玩家加入後所增加收益的平均」,例如原本只有 $x_2$ 貢獻為 $v (x_2)$,加入 $x_1$ 的合作貢獻為 $v (x_2, x_1)$,則 $x_1$ 造成的增加收益為 $v (x_2, x_1) - v (x_2)$。

Order$x_1$ ContributionValue
${\color{red} x_1}, x_2, x_3$$v (x_1)$10
${\color{red} x_1}, x_3, x_2$$v (x_1)$10
$x_2, {\color{red} x_1}, x_3$$v (x_2, x_1) - v (x_2)$20
$x_2, x_3, {\color{red} x_1}$$v (x_2, x_3, x_1) - v (x_2, x_3)$65
$x_3, {\color{red} x_1}, x_2$$v (x_3, x_1) - v (x_3)$35
$x_3, x_2, {\color{red} x_1}$$v (x_3, x_2, x_1) - v (x_3, x_2)$65

而 $x_1$ 的貢獻 (Shaply value) 則為所有上述情況的平均

$$ \begin{align*} \phi_1 = \frac{10 + 10 + 20 + 65 + 35 + 65}{6} \approx 34.17 \end{align*} $$

令 $\phi_j$ 為第 $j$ 位玩家的 Shaply value,考慮 $p$ 個玩家的情境,則

$$ \begin{align*} \phi_j = \sum_{S \subseteq \{ \contia{x}{p} \} \backslash \{ x_j \} } \frac{|S| ! (p - |S| - 1) !}{p!} (v (S \cup \{ x_j \}) - v (S)) \end{align*} $$

可以理解為選擇玩家 $x_j$ 後,考慮出現在 $j$ 以前的玩家們組成 $S$,其中 $S$ 的選擇數有 $|S|!$ 個,$j$ 以後的玩家為則有 $(p - |S| - 1)!$,例如前述的例子

$S$Order$x_1$ ContributionValue
$\{\}$${\color{red} x_1}, x_2, x_3$$v (x_1)$10
${\color{red} x_1}, x_3, x_2$
$\{x_2\}$$x_2, {\color{red} x_1}, x_3$$v (x_2, x_1) - v (x_2)$20
$\{x_3\}$$x_3, {\color{red} x_1}, x_2$$v (x_3, x_1) - v (x_3)$35
$\{x_2, x_3\}$$x_2, x_3, {\color{red} x_1}$$v (x_2, x_3, x_1) - v (x_2, x_3)$65
$x_3, x_2, {\color{red} x_1}$

則計算後可得,$\phi_1 = 34.17$,$\phi_2 = 41.66$ 與 $\phi_3 = 24.17$。

而 Shaply 的方法之所以合理,因其滿足:

  1. 效率性:所有人的貢獻和等於總價值。

    $$ \begin{align*} \sum_{j = 1}^{p} \phi_j = v (\contia{x}{p}) \end{align*} $$
  2. 對稱性:若兩個人在所有情況下對合作的影響都相同,則貢獻應相同。對任意 $S \subseteq \{ \contia{x}{p} \} \backslash \{ x_i, x_j \}$ 有

    $$ \begin{align*} v (S \cup \{ x_i \}) = v (S \cup \{ x_j \}) \Rightarrow \phi_i = \phi_j \end{align*} $$
  3. 零貢獻為零:若某人的加入完全不影響合作價值,則其貢獻為 0。對任意 $S \subseteq \{ \contia{x}{p} \} \backslash \{ x_j \}$ 有

    $$ \begin{align*} v (S \cup \{ x_j \}) = v (S) \Rightarrow \phi_j = 0 \end{align*} $$

SHapley Additive exPlanations (SHAP)

帶著 Shaply value 的觀念至機器學習裡面,考慮特徵 $\contia{x}{p}$ 為玩家們,合作貢獻出 $\hat y$,而我們想回答的問題是:

模型預測值是如何由各個特徵貢獻而來的?

首先,$\phi_0$ 是預測平均值,而對某筆預測來說,而每個特徵 $x_j$ 所貢獻為 $\phi_j$,因此可表達為

$$ \begin{align*} \hat y (x) = \phi_0 + \sum_{j = 1}^{p} \phi (x)_j \end{align*} $$

Force Plot 考慮單一預測是如何從各特徵的貢獻,知道預測高於或低於平均的理由,例如第一筆預測值低於平均 0.27,主要理由是

  • FirstStage.CombinerOperation.Temperature1.U.Actual 導致預測 + 0.15
  • Machine3.MaterialTemperature.U.Actual 導致預測 - 0.25

XGBoosts SHAP Force Plot

Summary Plot 若考慮全體樣本,每個點表示一個樣本,顏色表示數值大小。觀察特徵在不同大小所對應的 SHAP value,例如第一個特徵 Machine3.MaterialTemperature.U.Actual,在顏色偏黃時,SHAP < 0;也就是該數值較小時,模型傾向輸出降低 $\hat y$。

XGBoosts SHAP Summary Plot

Dependence Plot 考慮單變在不同數值時對模型貢獻的差異,例如在 $x$ 較小時,SHAP < 0,模型傾向降低 $\hat y$;在 $x$ 較大時,SHAP $\approx 0$,對模型貢獻小。

XGBoosts SHAP Dependence Plot

SHAP 考慮不同的特徵對模型的影響,但 Shaply value 的計算涉及大量排列組合,且預測時沒辦法做到"不放"某個特徵,因此更多是由區間採樣或某樣本與平均距離的差異下手,例如 Shapley Sampling 或 Kernel SHAP,甚至還有針對樹模型,如 XGBoost 的 SHAP 優化算法,方法多樣這邊就不贅述。

最後 SHAP 除了計算成本高外,使用上須注意的點主要是

  • 不能做為因果推論,SHAP 僅解釋模型決策的「邊際貢獻 (去除一個特徵的貢獻)」,這在資料具有強共線性時更容易影響邊際貢獻。建議同時考慮相關性矩陣。
  • 別過度解釋單一樣本,SHAP 僅考慮當下的輸入,對於局部解釋並不穩定。建議考慮一群樣本的 SHAP 值分布。
  • 注意基準值偏誤,$\phi_0$ 為模型預測的基準線,但模型若不合理,SHAP 也會錯得很合理。建議參考 Residual Plot 的表現。

討論

給工廠的建議,可以怎麼調整 $y$?在變數名稱裡面若有 C 則表示可控變數 (controllable),U 則為不可控制變數 (uncontrollable),因此準確的問題為

在可控變數中,如何調整 $y$?

大多變數都帶有複雜的相關性,然而 Machine1.Zone2Temperature.C.Actual 與其他變數幾乎無關的同時,對 $\hat y$ 卻帶有影響,在數值較大時,$\hat y$ 會越小;但在對上 $y$ 時的點散圖無呈現出明顯關係,我們認為理由是,對 $y$ 的影響較小,容易被視為是雜訊,但實際能提供微調空間。

SHAP Machine1.Zone2Temperature.C.Actual Dependence Plot

Machine1.Zone2Temperature.C.Actual vs y Scatter Plot

總結

  1. 存在極度異常值。部分 $x$ 與 $y$ 在數秒鐘內掉落至異常值後又回到原本狀態,幾乎無法辨別出模式。建議在測量或資料清洗時多加留意。
  2. XGBoost 提供了一個較為穩定的預測模型,預測誤差落控制在 3% 以內,約 86% 的測試 $R^2$ 保證了模型學習了大多數資料特徵。
  3. SHAP 能在複雜模型裡提供解釋性。能得知單筆預測的理由,同時也能觀察群體在不同特徵時的表現。
  4. $x$ 與 $y$ 相關係數接近 0,並不表示無法對預測提供貢獻。例如 Machine1.Zone2Temperature.C.Actual 就是與 $y$ 接近 0 相關係數,同時點散圖也幾乎無法觀察出相關性,然而卻能對預測提供貢獻。

參考資料

  1. Lundberg, S. M., & Lee, S. I. (2017). A unified approach to interpreting model predictions. Advances in neural information processing systems, 30.
  2. Si, Yong, et al. (2025). Machine Learning-Based Prediction of Mortality in Geriatric Traumatic Brain Injury Patients.