手把手教你在試驗中修正機器學習模型(附學習資源)

手把手教你在試驗中修正機器學習模型(附學習資源)

翻譯:王威力

校對:萬文菁

本文約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數據派”及姊妹號“數據派THU”獲取更多講座福利及優質內容。


分享到:


相關文章: