我們將和大家一起探討機器學習與數據科學的主題。
本文主要討論大家針對回歸學習器提出的問題。我將概要介紹,然后探討以下五個問題:
1. 能否將回歸學習器用于時序數據?
2. 該如何縮短訓練時間?
3. 該如何解釋不同模型的結果和可用的繪圖?
4. 我選擇了具有最小均方根誤差 (RMSE) 的模型;接下來還需要做些什么?
5. 如何基于新數據進行預測?
本文會解答一些有關 MATLAB 回歸學習器的問題,基本上不涉及回歸本身。
引言
自 2017 年起,工程師和科學家可以在 MATLAB 中使用回歸學習器。
回歸分析可以幫助人們理解變量和數值響應之間的關系,可用于預測能耗、財務績效和制造工藝參數等。從根本上說,有了回歸學習器,您無需編寫代碼即可交互構建回歸模型,并衡量模型的準確度和性能。
您可以快速比較各種回歸模型和特征的性能。這款 App 對于剛接觸機器學習的人特別有用,因此我很高興回答一些與該 App 直接相關的問題。
Q1
能否將回歸學習器用于時序數據?
當然可以。
例如,您可以使用回歸模型來預測電力負荷或預測暴風雨造成的損失,與在其他機器學習 App 中一樣,在該 App 中使用時序數據之前,必須對數據進行預處理和清理。
這包括將數據調整到正確的格式、對數據進行歸一化以使其處于同一尺度、均勻地分布數據、處理重復數據或缺失數據,以及執行其他必要任務。
Q2
訓練花費的時間太長;我該怎么做才能更快地訓練我的模型?
您可以在回歸學習器中執行幾項操作來加快訓練速度。提醒一下,在這里我主要介紹該 App 本身提供的方法。
建議 1:使用并行回歸模型訓練
如果您擁有 Parallel Computing Toolbox?,首先可以嘗試的是使用并行回歸學習器模型進行訓練,這也是比較簡單的方法。此方案會創建一個并行池以進行并行訓練,讓您能夠在繼續工作的同時并行訓練多個模型。
如果選擇此方案,您將在“歷史記錄”列表中看到每個訓練中模型和排隊中模型的進度指示器,并且還可以隨時取消某個模型。這種方法將有助于減少訓練所需時間。
在回歸學習器的菜單欄中選擇“使用并行”。
建議 2:使用留出法驗證
如果數據很大,請確保使用正確的驗證選項。
當您在回歸學習器中打開新會話并選擇數據時,默認會選擇交叉驗證。
交叉驗證可將數據劃分為若干折 (k)、訓練模型并計算所有折的平均測試誤差。
與其他方案相比,此方法可以更好地防止過擬合,但需要多次擬合,因此適用于中小型數據集。
留出法驗證可讓您使用滑塊控件選擇要用作測試集的數據百分比。該 App 將在訓練集上訓練模型,并通過測試集評估其性能。用于測試的模型僅基于一部分數據,因此留出法驗證特別適用于大型數據集。當然,您也可以選擇不驗證模型,但是這有可能導致訓練數據過擬合。了解有關回歸問題驗證選項的更多信息
啟動新會話時,默認會選擇交叉驗證。
建議 3:僅在一組模型類型上訓練數據
如果您已知數據特別適合用某一類模型處理,或者某一類模型的訓練速度太慢,則可以在 App 中選中該類型或取消選中,而不必對所有類型進行訓練。如果不確定,則可以嘗試“全部(快速訓練)”選項,該選項將對所有訓練速度通常較快的模型類型進行訓練。
然后,您可以訓練均方根誤差 (RMSE) 最小的那一組的所有模型,以找到最佳模型。
建議 4:精簡訓練數據
人們經常討論如何獲得足夠的數據,但其中的關鍵是確保擁有足夠的正確數據。您可能有一些多年前的歷史數據,一些不必要、不再有用的數據。
刪除或減少這類數據可以加快訓練速度,當然,您需要時刻關注數據的準確性和代表性。這應該是您最后的選擇,因為您必須非常謹慎地減少數據。
Q3
該如何解釋不同模型的結果和可用的繪圖?
這是一個很好的問題!
在用您的數據訓練完模型后,需要采取幾個步驟來解釋結果。
步驟 1:找出具有最小均方根誤差的模型
RMSE 衡量每個模型的預測值與觀測值之間的距離,因此它衡量的是這些殘差的擴散程度。該 App 將在最小 RMSE 周圍加一個框。
步驟 2:探查模型
選擇具有最小 RMSE 的模型后,下一步就是查看 App 中可用的不同繪圖:常用的繪圖有兩種:響應圖,實際值-預測值圖。
較小的 RMSE 將以粗體顯示,并帶有一個方框。
響應圖
響應圖以豎線顯示預測響應與觀測值之間的差異。如果您對數據使用留出法驗證或交叉驗證,則此圖特別有用,因為圖中顯示的預測值對應的是留出的觀測值,模型未在這部分數據上進行訓練。
使用響應圖查看預測值和觀測值之間的距離。
實際值-預測值圖
實際值-預測值圖可幫助您檢查模型性能。該圖繪制了模型的預測響應對真實響應的圖。
在此圖中,理想的回歸模型應有與觀測值相同的預測響應,因此所有點都將位于對角線上。
然而,這在現實中是不可能的,所以我們的目標是讓這些點盡可能靠近對角線,并大致對稱地分散在對角線附近。如果能在此圖中檢測到模式,則意味著模型可以改進,您可以選擇訓練其他模型類型,也可以選擇使用高級選項使模型更靈活。
實際值-預測值圖可幫助您可視化回歸模型的準確度。
Q4
我選擇了具有最小均方根誤差 (RMSE) 的模型;要優化模型,接下來還需要做些什么?
在針對數據訓練和評估初始模型之后,可以通過調整模型的超參數來確保實現最佳性能。
要自動選擇并找到模型的最佳超參數值,可以使用超參數優化功能。
該 App 會嘗試不同的超參數值組合,以最小化模型的均方誤差 (MSE),并返回使用優化超參數的新模型。
超參數調整的效果因模型而異,因此您需要為多種類型的模型優化超參數,因為初始模型可能無法實現最佳性能。
Q5
如何開始進行預測?
要使用經過全面訓練和優化的模型基于新數據進行預測,您需要將模型導出到某個位置。您可以將其導出到 MATLAB 工作區,或者生成 MATLAB 代碼,以使用剛才在 App 中所用的步驟來訓練模型。
然后,您可以使用 MATLAB Compiler? 部署模型,或者使用 MATLAB Coder? 從模型生成 C/C++ 代碼。