手把手教你在試驗中修正機器學習模型(附學習資源)
機器學習的實現路線充滿了反覆試驗。 在這個領域,新手工程師和科學家將不斷調整他們的演算法和模型。此過程中會出現挑戰,尤其是在資料處理和確定最優模型的時候。
在建立機器學習模型時,重要的是知道現實世界的資料並不完美,因此不同型別的資料需要不同的處理方法和工具,並且在確定最優模型的時候不可避免會有取捨。
下面的系統流程將描述如何開發一個訓練好的模型用於 手機健康監測app ,該app跟蹤使用者整天的活動。輸入包括手機端記錄的感知器資料。輸出將是使用者的活動:行走,站立,坐下,跑步,或跳舞。由於這是一個分類問題,這個例子將應用有監督學習。
訪問和載入資料
使用者將拿著手機坐下來,記錄感測器資料,並將其儲存在標記為“坐下”的文字檔案中。之後,使用者拿著手機站起來,記錄感測器資料,並將其儲存在標記為“站立”的文字檔案中。用同樣的方法來記錄跑步、行走、跳舞的資料。
資料預處理
由於機器學習演算法無法區分資料中的噪聲和有價值的部分,所以需要在訓練模型前清洗資料。資料預處理可以用資料分析工具來實現,比如MATLAB。為了清理資料,使用者可以匯入並繪製資料,去除異常值。在這個例子中,離群值可能是由於在記錄資料時無意中移動了手機造成。使用者還需要檢查缺失值,缺失值可用其他樣本的近似值或參照資料代替。
圖 1 資料預處理之去除離群值,即位於資料主要部分之外的資料點。
資料清洗之後,將資料集分為兩個部分,一部分作為訓練集,另一部分將是用於測試和交叉驗證的“保留”資料。
使用預處理後的資料生成特徵
原始資料必須轉化成機器學習演算法可以使用的資訊。要實現這一點,使用者必須生成能夠區分手機端資料的特徵。
在這個例子中,工程師和科學家必須劃分好特徵以幫助演算法區分步行(低頻)和跑步(高頻)。
資料型別 |
特徵選擇目標 |
技巧 |
感測器資料 |
從原始感測器資料中提取訊號特性以建立更高級別的資訊 |
峰值分析——應用傅立葉變化,識別主頻 脈衝和轉移矩陣——得到訊號特徵如上升時間、下降時間、趨穩時間 頻譜測量——畫出訊號功率、頻寬、均值頻率、中值頻率 |
影象和視訊資料 |
提取特徵,例如邊緣位置、解析度、顏色 |
視覺詞袋——生成影象特徵直方圖,例如邊緣、角點、連通區域 方向梯度直方圖——生成梯度方向直方圖 最小特徵值演算法——監測影象角點 邊緣探測——探測影象亮度變化最快的畫素點位置 |
交易資料 |
計算提煉資料中資訊的派生值 |
時間標記分解——把時間標記分解成到天或者月 計算整合值——生成更高級別的特徵,比如某一特殊時間出現的總次數 |
表 1 依據資料型別匯出特徵,可以把原始資料轉化成機器學習模型可以使用的高級別資訊
建立並訓練模型
從一個簡單的決策樹開始:
圖 2 基於特徵建立的決策樹分類模型
繪製混淆矩陣以觀察模型效果。
圖 3 矩陣顯示該模型在區分跳舞和跑步時存在問題
基於上面的混淆矩陣,這表示決策樹不適合這種型別的資料,或者應該使用不同的演算法。
K近鄰演算法(KNN)儲存所有訓練資料,將新資料點與訓練資料進行比較,得到K個最相似樣本,並返回這些相似樣本的最頻繁類。這個演算法展示出更高的準確度。
圖 4 改用KNN演算法提高了準確度——儘管還有提高的可能性
另一個選擇是多分類支援向量機(SVM):
圖 5 SVM的準確率在每個分類標籤上都接近99%
這個過程證明了通過反覆試驗可以更好實現目標。
改進模型
如果模型無法可靠地區分跳舞和跑步,就需要改進模型。改進模型可以通過使其複雜化以更好地擬合數據,或者使其簡單化以降低過擬合的可能性。
為了簡化模型,可以通過以下方法減少特徵數量:
-
相關矩陣,去除相關性弱的特徵;
-
PCA降維 ,消除冗餘;
-
有序地縮減特徵,直到模型效果不再提高。
為了使模型更加複雜,工程師和科學家可以通過集合多個簡單模型得到一個更大的模型或者增加更多資料來源。
完成訓練和調整之後,模型可以應用在測試集(資料預處理時保留的一部分資料)。如果模型可以可靠地對活動分類,那麼它就可以應用在手機應用程式。
工程師和科學家第一次訓練機器學習模型的時候將會遇到挑戰,但應該意識到反覆試驗是過程的一部分。
上述的工作流程提供了構建機器學習模型的路線圖,並且可以應用到其他不同的問題上,比如預測維護、自然語言處理和自動駕駛。
探索這些資源以瞭解更多機器學習方法和例子:
-
Supervised Learning Workflow and Algorithms:Learn the workflow and steps in the supervised learning process
https://www.mathworks.com/help/stats/supervised-learning-machine-learning-workflow-and-algorithms.html?s_tid=srchtitle&s_eid=PEP_19715.html
-
MATLAB Machine Learning Examples:Get started with machine learning by exploring examples, articles, and tutorials
https://www.mathworks.com/solutions/machine-learning/getting-started.html&s_eid=PEP_19715.html
-
Machine Learning with MATLAB:Download this ebook for a step-by-step guide providing machine learning basics along with advanced techniques and algorithms
https://www.mathworks.com/campaigns/offers/machine-learning-with-matlab.html?s_iid=nd_bb15&s_eid=PEP_19715.html
原文標題:
Building a Machine Learning Model through Trial and Error
原文連結:
https://www.kdnuggets.com/2018/09/mathworks-building-machine-learning-model-through-trial-error.html