本專案源自 BDSE37 Data Mining 課堂上的資料集(Dataset)分析作業,此資料集來源於 SECOM。SECOM 是一組由 UCI Machine Learning Repository 提供的工業製程資料集,完整名稱是 SECOM Manufacturing Data Set。而資料集來源於一家半導體製造公司(實際公司名稱未公開),主要應用場景用來進行製程品質監控與瑕疵預測(如早期故障偵測、品質異常檢測等),
- 本專案欲探討用 機器學習(Machine Learning, ML) 技術在面對這份半導體產線的感測器大量數據資料集(欄位多、缺值多、分布不均)時,如何將這份資料集做二元分類,進而發掘隱藏的規律與模式(如:群組間差異、潛在關聯、異常感測器行為)
故本專案旨在以最直觀的方式,來找出最可能導致不良的感測器與異常模式,並把發現轉化為可以落地的製程監控與改善建議。專案目的是從這些大量感測器數據中找出與產品瑕疵(y=1)有關的潛在模式與異常。
-
群組分析
- 以目標變數
y(0 = 正常產品,1 = 有缺陷)進行群組分群。 - 分析各感測器在不同群組下的統計特徵(平均值、標準差、極值等)。
- 以目標變數
-
視覺化分析
- 使用圖表工具(箱型圖、熱圖、SVM 等)呈現感測器在不同群組中的分布與變異。
- 協助發現可能關鍵的異常感測器。
本專案使用來自 UCI Machine Learning Repository 的 SECOM 製造感測器資料集(2008),其來源為一家半導體製造公司,用感測器監控製程品質並預測產品是否不良。該資料集為高維感測器資料,常用於資料探勘中的特徵選取、維度縮減、分類建模與異常偵測任務。
- 資料集概覽
| 項目 | 數量 |
|---|---|
| 資料筆數 | 1567 |
| 總欄位數 | 592 |
| 感測器欄位 | 590 個(欄位名稱為 0~589) |
| 時間欄位 | Time(1567筆時間戳) |
| 目標變數 | Pass/Fail(1 = 通過檢測,-1 = 不合格) |
-
目標變數
y- Pass/Fail- 類別型變數,用來表示每一筆樣本是否為瑕疵產品
-
資料特性
- 多數感測器變數存在不同程度的缺失值,部分欄位缺失超過 90%
- 各感測器變數為連續型資料,但未提供具體單位或感測器名稱(為匿名特徵)
- 存在大量共線性、零變異或極端值變數,適合進行資料清洗與降維處理
建模與資料分析工具
- 語言與環境:Python 3.x、Jupyter Notebook
- 資料處理:Pandas、NumPy
- 視覺化:Matplotlib、Seaborn
- 機器學習:scikit-learn
| 分析步驟 | 主要觀察 | 關鍵發現與建議 |
|---|---|---|
| 資料探索 | - 資料:1567 筆、592 欄(590 個感測器) - 缺失值:部分感測器缺失率超過 90% - 目標分布:Fail 樣本比例低 - 變異檢查:是否存在零變異與高度共線 |
- 缺失值需填補或刪除 - 移除零變異與高共線特徵 - 處理類別不平衡(重抽樣/加權) |
| 群組分析 | - 統計摘要:比較 Pass/Fail 群組的感測器均值、標準差、缺失率 - 效果量 (SMD):篩選與瑕疵高度相關的感測器 - 顯著性檢定:Welch t-test + BH 校正 |
- 高 SMD 感測器可能與瑕疵高度相關 - 建議驗證並優先監控這些感測器 |
| 視覺化分析 | - 混淆矩陣熱圖 & ROC 曲線:顯示感測器間相關性 |
- 建議用 PCA 減少冗餘特徵 |
| 綜合結論 | - 品質異常關鍵特徵來自高 SMD 與顯著性檢定結果 |
- 完整的特徵工程與降維處理可大幅提升模型效率與可解釋性 |
資料來源: UCI SECOM 資料集 https://www.kaggle.com/datasets/paresh2047/uci-semcom