手把手教你在試驗中修正機器學習模型
作者:Seth DeLand
翻譯:王威力
校對:萬文菁
本文約1800字,建議閱讀8分鐘。
本文是一個循序漸進的指南,包括如何預處理數據和從中生成特徵。並且還包含其他示例資源的鏈接,以幫助您探索有關機器學習的方法和其他示例。
機器學習的實現路線充滿了反覆試驗。在這個領域,新手工程師和科學家將不斷調整他們的演算法和模型。此過程中會出現挑戰,尤其是在數據處理和確定最優模型的時候。
在建立機器學習模型時,重要的是知道現實世界的數據並不完美,因此不同類型的數據需要不同的處理方法和工具,並且在確定最優模型的時候不可避免會有取捨。
下面的系統流程將描述如何開發一個訓練好的模型用於手機健康監測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
譯者簡介
王威力,求職狗,在香港科技大學學習大數據科技。感覺數據科學很有難度,也很有意思,還在學(tu)習(tou)中。一個人肝不動的文獻,來數據派follow大佬一起肝。
翻譯組招募信息
工作內容:需要一顆細緻的心,將選取好的外文文章翻譯成流暢的中文。如果你是數據科學/統計學/計算機類的留學生,或在海外從事相關工作,或對自己外語水平有信心的朋友歡迎加入翻譯小組。
你能得到:定期的翻譯培訓提高志願者的翻譯水平,提高對於數據科學前沿的認知,海外的朋友可以和國內技術應用發展保持聯繫,THU數據派產學研的背景為志願者帶來好的發展機遇。
其他福利:來自於名企的數據科學工作者,北大清華以及海外等名校學生他們都將成為你在翻譯小組的夥伴。
點擊文末「閱讀原文」加入數據派團隊~
轉載須知
如需轉載,請在開篇顯著位置註明作者和出處(轉自:數據派ID:datapi),並在文章結尾放置數據派醒目二維碼。有原創標識文章,請發送【文章名稱-待授權公眾號名稱及ID】至聯繫郵箱,申請白名單授權並按要求編輯。
發布後請將鏈接反饋至聯繫郵箱(見下方)。未經許可的轉載以及改編者,我們將依法追究其法律責任。
點擊「閱讀原文」擁抱組織
※2018年未來醫療100強論壇
※高性能計算之定製化優化演算法講座
TAG:數據派THU |