資料競賽:第四屆工業大資料競賽-虛擬測量

公眾號YueTan發表於2020-11-29

原文首發於我的公眾號

背景

注塑成型作為做常見的一種塑料製品加工工藝,它所加工的產品在生活中隨處可見,例如電子產品、汽車配件、玩具以及其他眾多消費品。由於成型系統較為複雜並且對環境較為敏感,注塑成型加工過程中的不穩定因素很容易導致產品不良的發生,造成經濟損失。所以我們建立注塑成型大資料,來感知這些不可見的干擾因素,然後通過分析建模解決甚至避免現場痛點問題。比如成型過程的異常檢測預警及不良品的識別,有助於減少甚至避免不合格品的產生,對於管控產品質量、降低生產成本有重要的作用。同時,針對異常產生現場人員因經驗差異導致調機無法規範化的問題,如果能夠根據成型過程資料和異常事件進行建模分析,改進調機策略,將會節省大量的時間成本和經濟成本。

任務

要求選手針對成型工藝品質異常中尺寸超規問題進行虛擬量測。根據訓練集所提供所有模次產品的過程資料和相對應的實際量測值(標籤)進行虛擬量測模型建模,然後對測試集中的產品進行尺寸預測,即虛擬量測。

資料

本次競賽的資料集包含以下多種來源:

感測器高頻資料:該資料來自於模溫機及模具感測器採集的資料,資料夾內每一個模次對應一個csv檔案,單個模次時長為40~43s,取樣頻率根據階段有20Hz和50Hz兩種,含有24個感測器採集的資料;
成型機狀態資料(data_spc):該資料來自成型機機臺,均為表徵成型過程中的一些狀態資料,每一行對應一個模次,資料維度為86維;
機臺工藝設定引數(data_set):資料夾中含有注塑成型的81種工藝設定引數;
產品測量尺寸(size):資料夾內含有每個模次產品的3維尺寸;
分析
首先根據任務與資料簡單檢視資料。檢視所有特徵列,列名,型別,空值統計,基本describe資訊。

檢視目標列的資訊。首先是趨勢:

在這裡插入圖片描述

目標列的分佈:
在這裡插入圖片描述

檢視各個特徵與目標的關係,以及各個特徵訓練集與測試集分佈的不同。

在這裡插入圖片描述
在這裡插入圖片描述

建模

在資料探索性分析基礎上,就是建模過程。首先,可以把metrics函式寫出來。然後是特徵匯入,模型、驗證、提交各個部分。baseline寫完之後,首先保證驗證部分是合理的,判斷依據是本地測試結果與線上提交結果的同步,允許微小不同,但應保持同步。

對於常規的表格問題,首選嘗試自然是lightgbm,除了效能好之外,還可以方便的輸出特徵重要性,進行特徵選型。我的基本模型是這樣的,lightgbm和交叉驗證融合到一起。

def model():
    predictions = np.zeros(len(X_test))
    for i, (train_index, val_index) in enumerate(skf.split(X_train,y_train)):
        print("fold {}".format(i))
        X_tr, X_val = X_train.iloc[train_index], X_train.iloc[val_index]
        y_tr, y_val = y_train.iloc[train_index], y_train.iloc[val_index]
        lgb_train = lgb.Dataset(X_tr, y_tr)
        lgb_val = lgb.Dataset(X_val, y_val)
        clf = lgb.train(lgb_params, lgb_train, num_round=2000, valid_sets = [lgb_train, lgb_val],verbose_eval=50, 
                        early_stopping_rounds = 50)
        print('best iteration = ', clf.best_iteration)
        predictions += clf.predict(X_test, num_iteration=clf.best_iteration) / skf.n_splits
    return predictions

迭代與後處理

從資料、特徵、模型去考慮細緻深入的改進。錯誤分析,嘗試尋找tricks。

也值得紀念一下自己第一次認真參加的資料比賽。決賽的翻車自然就是另一個故事了。

比賽的總結

常規套路

  • lightgbm baseline
  • nn baseline
  • 訓練與測試集同分布檢測
  • 特徵篩選(同分布也可以認為是一種提前篩選)
  • 本地交叉驗證
  • 特徵工程

以上做的細緻一點,初賽可以達到1e5以下。雖然離第一結果很遠,但可以維持在top20以內。但是決賽前三天,風雲突變,這個成績只能排50以外了。

彎路

我的大多嘗試都越來越差,即使本地測試提高了,排行榜也可能差遠了。
其實沒什麼彎路,只是嘗試了太多不起作用的調整,目標後來甚至是能堅持完賽,別放棄就好。若干年後的一個秋天,當我回想起我第一次參加資料比賽的經歷,因為好好了解了一下注塑機的歷史,大概只記得注塑機的發明動力源自以前的檯球都是昂貴的象牙做的。

歡迎關注,我是YueTan

相關文章