練習:將機器學習模型定型
您已從狀況良好和失敗的製造裝置收集到感應器資料。 您現在想要使用 Model Builder 來定型機器學習模型,預測機器故障與否。 使用機器學習來自動化監視這些裝置,即可藉由提供更及時且可靠的維修來節省公司成本。
新增機器學習模型 (ML.NET) 項目
若要開始定型流程,您需要將新的「機器學習模型」(ML.NET) 項目新增至新的或現有的 .NET 應用程式。
建立 C# 類別庫
因為您是從頭開始,所以請建立新的 C# 類別庫專案,而您將在其中新增機器學習模型。
啟動 Visual Studio。
在開始視窗中,選取 [建立新專案]。
在 [建立新專案] 對話方塊中,於搜尋列上輸入類別庫。
從選項清單中,選取 [類別庫]。 確定語言為 C#,然後選取 [下一步]。
在 [專案名稱] 文字方塊中,輸入 PredictiveMaintenance。 保留所有其他欄位的預設值,然後選取 [下一步]。
從 [架構] 下拉式清單中,選取 [.NET 6.0 (預覽)],然後選取 [建立] 以建構 C# 類別庫。
將機器學習新增至您的專案
在 Visual Studio 中開啟類別庫專案之後,即可在其中新增機器學習。
在 Visual Studio 方案總管中,以滑鼠右鍵按一下您的專案。
選取 [新增] > [機器學習模型]。
從 [新增項目] 對話方塊的新項目清單中,選取 [機器學習模型 (ML.NET)]。
在 [名稱] 文字方塊中,針對您的模型使用名稱 PredictiveMaintenanceModel.mbconfig,然後選取 [新增]。
幾秒鐘之後,就會將稱為 PredictiveMaintenanceModel.mbconfig 的檔案新增至您的專案。
選擇您的情節
第一次將機器學習模型新增至專案時,會開啟 [Model Builder] 畫面。 現在是時候選取您的情節。
針對您的使用案例,您正在嘗試判斷機器是否故障。 因為只有兩個選項,而且您想要判斷機器所處的狀態,所以資料分類情節最為適當。
在 [Model Builder] 畫面的 [情節] 步驟中,選取 [資料分類] 情節。 選取此案例之後,就會立即前進到 [環境] 步驟。
選擇您的環境
針對資料分類情節,僅支援可使用您 CPU 的本機環境。
- 在 [Model Builder] 畫面的 [環境] 步驟中,預設會選取 [本機 (CPU)]。 將預設環境保持已選取狀態。
- 選取 [下一步]。
載入並準備您的資料
既然您已選取您的案例和定型環境,就可以使用 Model Builder 來載入並準備您所收集的資料。
準備您的資料
在您選擇的文字編輯器中開啟檔案。
原始資料行名稱會包含特殊括弧字元。 若要防止資料剖析問題,請移除資料行名稱中的特殊字元。
原始標頭:
UDI,Product ID,Type,Air temperature [K],Process temperature [K],Rotational speed [rpm],Torque [Nm],Tool wear [min],Machine failure,TWF,HDF,PWF,OSF,RNF
更新的標頭:
UDI,Product ID,Type,Air temperature,Process temperature,Rotational speed,Torque,Tool wear,Machine failure,TWF,HDF,PWF,OSF,RNF
儲存您變更的 ai4i2020.csv 檔案。
選擇資料來源類型
預測性維護資料集是 CSV 檔案。
在 [Model Builder] 畫面的 [資料] 步驟中,針對 [資料來源類型] 選取 [檔案 (csv、tsv、txt)]。
提供資料的位置
選取 [瀏覽] 按鈕,然後使用檔案總管來提供 ai4i2020.csv 資料集的位置。
選擇標籤資料行
從 [要預測的資料行 (標籤)] 下拉式清單中,選擇 [機器故障]。
選擇進階資料選項
所有不是標籤的資料行預設都會當作特徵。 某些資料行包含備援資訊,其他資料行則不會通知預測。 使用進階資料選項來忽略這些資料行。
選取 [進階資料選項]。
在 [進階資料選項] 對話方塊中,選取 [資料行設定] 索引標籤。
請如下設定資料行設定:
資料行 目的 資料類型 類別 UDI 忽略 Single 產品識別碼 功能 String 類型 功能 String X 氣溫 功能 Single 處理溫度 功能 Single 旋轉速度 功能 Single 扭力 功能 Single 工具磨損 功能 Single 機器故障 標籤 Single X TWF 忽略 Single X HDF 忽略 Single X PWF 忽略 Single X OSF 忽略 Single X RNF 忽略 Single X 選取 [儲存]。
在 [Model Builder] 畫面的 [資料] 步驟中,選取 [下一步]。
定型您的模型
使用 Model Builder 和 AutoML 來定型您的模型。
設定定型時間
Model Builder 會自動根據檔案大小,設定您應該定型的時間長度。 在此情況下,為了協助 Model Builder 探索更多模型,請提供較多的定型時間。
- 在 [Model Builder] 畫面的 [定型] 步驟中,將 [要定型的時間 (秒)] 設定為 [30]。
- 選取定型。
追蹤定型流程
定型流程開始之後,Model Builder 會探索各種模型。 您的定型流程是在定型結果和 Visual Studio 輸出視窗中進行追蹤。 定型結果提供在整個定型流程中所找到最佳模型的相關資訊。 輸出視窗提供詳細資訊,例如所使用演算法的名稱、定型所花費的時間,以及該模型的效能計量。
您可能會看到相同的演算法名稱出現多次。 發生此情況的原因是除了嘗試不同的演算法之外,Model Builder 也會嘗試針對這些演算法使用不同的超參數設定。
評估您的模型
使用評估計量和資料來測試模型的效能。
檢查您的模型
[Model Builder] 畫面上的 [評估] 步驟可讓您檢查針對最佳模型所選擇的評估計量和演算法。 請記住,您的結果與本課程模組中所提及的結果可以不同,因為所選擇的演算法和超參數可能不同。
測試您的模型
在 [評估] 步驟的 [嘗試您的模型] 區段中,您可以提供新資料,並評估預測的結果。
[範例資料] 區段可讓您為模型提供輸入資料以進行預測。 每個欄位都會對應至用來定型模型的資料行。 這是確認模型如預期般運作的便利方式。 Model Builder 預設會預先填入資料集第一個資料列的範例資料。
請測試您的模型,以查看其是否產生預期的結果。
在 [範例資料] 區段中,輸入下列資料。 其來自資料集中 UID 為 161 的資料列。
資料行 值 產品識別碼 L47340 類型 L 氣溫 298.4 處理溫度 308.2 旋轉速度 1282 扭力 60.7 工具磨損 216 選取 [預測]。
評估預測結果
[結果] 區段會顯示模型所做的預測,以及該預測的信賴度等級。
如果您在資料集中查看 UID 為 161 的 [機器故障] 資料行,則會注意到此值為 1。 這與 [結果] 區段中信賴度最高的預測值相同。
如果您想要,則可以繼續使用不同的輸入值來試用模型,以及評估預測。
恭喜! 您已將模型定型,以預測機器故障。 在下一個單元中,您將了解模型耗用量。