流程與成本優化
進階
流程與成本優化

從製程資料找不良原因:相關不等於因果

把批次資料和不良紀錄合併,用隨機森林找出最可疑的製程參數,再用小規模實驗驗證,不直接改參數。
1 小時 30 分
6 步
免費
編
AI 有解編輯部
最後更新 2026 年 11 月 5 日・CC BY 4.0
用到的工具
Python
pandas
scikit-learn
良率問題的難處是可疑因素太多。機器學習不能告訴你真正的原因,但能從幾十個參數裡,告訴你最值得先查哪幾個。這篇就是這樣用的。
你需要準備
•
每批或每件的製程參數,以及是否不良
•
不良至少要有幾十筆,太少很難分析
•
Python:pip install pandas scikit-learn
進度 0/6
1

把資料接起來

最困難的通常是追溯:哪個零件是在什麼參數下做出來的。整理成一列一批,存成 lots.csv:
time
temp
pressure
speed
humidity
defect
2026-01-01 08:00
181
30.2
60
55
0
如果量測時間和加工時間不同,要依製程的延遲時間對齊。
2

先看圖

和現場人員一起看,比模型更重要:
文字
這份資料是我的製程紀錄,defect=1 代表不良。請用程式畫圖: 1. 不良率隨時間的變化 2. 不同班別、機台、材料批號的不良率 3. 每個參數在良品和不良品之間的分布差異 並說明你觀察到的現象,但不要下因果結論。
只要發現「都是某台機器」或「換某批料之後才發生」,可能就不需要模型了。
3

訓練模型找線索

以下程式實測可以執行。製程資料不能隨機切,要用前段訓練、後段驗證:
Python
import pandas as pd from sklearn.ensemble import RandomForestClassifier from sklearn.inspection import permutation_importance from sklearn.metrics import average_precision_score df = pd.read_csv("lots.csv", parse_dates=["time"]).sort_values("time") features = ["temp", "pressure", "speed", "humidity"] cut = int(len(df) * 0.8) # 前 80% 訓練,後 20% 驗證,不能隨機切 train, test = df.iloc[:cut], df.iloc[cut:] model = RandomForestClassifier(n_estimators=300, min_samples_leaf=5, class_weight="balanced", random_state=0) model.fit(train[features], train["defect"]) base = test["defect"].mean() score = average_precision_score(test["defect"], model.predict_proba(test[features])[:, 1]) print(f"不良率基準 {base:.3f},模型 AP {score:.3f}") imp = permutation_importance(model, test[features], test["defect"], scoring="average_precision", n_repeats=20, random_state=0) print(pd.Series(imp.importances_mean, index=features).sort_values(ascending=False).round(3))
AP 要明顯高於不良率基準,模型才算有學到東西。用這份程式的模擬資料測試時,基準 0.09、AP 0.39,而且 temp 和 pressure 排在最前面,和我們設定的原因一致。真實資料通常沒有這麼乾淨。
4

解讀,不要過度解讀

排名靠前只代表「和不良有關」,不代表它是原因。可能的情況:
•
溫度高是因為換了某批材料,材料才是原因
•
兩個參數高度相關,重要性被分散
•
不良的品檢方式在某段時間改變了
把結果拿給工程師和師傅看:「這在物理上說得通嗎?」
5

做實驗驗證

挑出一到兩個假設,做小規模的對照實驗:只改一個參數,其他條件固定,比較良率。必要時可以用實驗設計(DOE)一次測多個因子。
參數調整要走公司的變更流程,並先確認不會超過設備或安全範圍。
注意
不要讓模型自動調整機台參數。只用歷史資料找到的關聯,可能在實際改動後完全相反。設備的安全條件和保護機制都不能被 AI 取代或繞過。
6

把成果固定下來

驗證有效後,更新 SOP 和管制範圍,並持續監控,方法在〈提前發現製程偏移:管制圖與 EWMA 先做,再談 AI〉。
你照著做成功了嗎?
成為第一個回報的人。你的回報會決定攻略排序與作者分潤。
下一步
•
想從機器自動取得資料,看〈用 Python 讀舊機器的 Modbus〉。
•
想用影像檢測瑕疵,看〈用 Anomalib 訓練瑕疵檢測〉。
收錄在學習路線
廣告版位
想讓正在用 AI 的人看到你的產品?了解廣告合作
問與答
卡住的地方、補充的做法都可以留在這裡
還沒有人留言。
更多「流程與成本優化」攻略