Martin Heller
監督學習可把標記的訓練數據轉化為經過調優的預測模型。
機器學習是人工智能的一個分支,包括從數據中自動創建模型的算法。從高層次上講,機器學習有四種:監督學習、無監督學習、強化學習和主動機器學習。由于強化學習和主動機器學習相對較新,因此此類列表有時會省略它們。你也可以把半監督學習添加到列表中,也不算錯。
什么是監督學習?
監督學習是從帶有正確答案(目標值)的經過標記的訓練數據開始的。在學習過程之后,將得到一個經過調優的權重集的模型,這可以用于預測尚未標記的類似數據的答案。
你想要的是訓練一個沒有過度擬合或者欠擬合的高精度模型。高精度意味著你已經優化了損失函數。在分類問題的情景中,準確性是模型產生正確輸出的示例的比例。
過度擬合意味著模型與它所看到的數據關聯過于緊密,以致于不能推廣應用到它所沒有看到的數據。欠擬合意味著模型不夠復雜,無法捕獲數據中的潛在趨勢。
選擇損失函數來反映模型的“不足之處”將損失最小化以找到最佳模型。對于數值(回歸)問題,損失函數通常是均方誤差(MSE),也可表示為均方根誤差(RMSE)或者均方根偏差(RMSD)。這對應于數據點和模型曲線之間的歐幾里得距離。對于分類(非數值)問題,損失函數可以基于一種度量方法,包括ROC曲線下面積(AUC)、平均精度、精度恢復和對數損失等。
為了避免過度擬合,通常把標記過的數據分為兩組,多數用于訓練,少數用于驗證和測試。驗證集損失一般高于訓練集損失,但這是你所關心的,因為不應該表現出對模型的偏見。
對于小數據集,使用固定的維持集進行測試驗證可能會導致統計值較低。解決這一問題的一種方法是使用交叉驗證方法,其中不同的折疊(數據子集)輪流作為不同訓練階段的維持集。
我提到了AUC是ROC曲線下的區域。ROC是接收機工作特性曲線;該術語來自無線電信號分析,但從本質上講,ROC曲線通過繪制真正值比率與假正值比率的關系來顯示分類器的靈敏度。ROC曲線下的區域越大越好,這樣,當你使用它作為損失函數的基礎時,實際上希望最大化AUC。
機器學習的數據清理
原始數據都不是很干凈。為了更好地應用于機器學習,必須很好地過濾數據。例如,你需要:
1. 查看數據并排除任何有大量缺失數據的列。
2. 再次查看數據,并選擇要用于預測的列(特征選擇)。特征選擇是你在迭代時想要改變的內容。
3. 去掉剩余列中仍缺少數據的所有行。
4. 糾正明顯的拼寫錯誤,并合并相同的條目。例如,U.S.、US、USA和美國應合并為一個類別。
5. 去掉數據超出范圍的行。例如,如果你分析紐約市內的出租車行駛路線,想篩選出某些數據行,這些行中的上客和下客經緯度坐標點位于都市區域邊界框之外。
可以做的還有很多,而這將取決于收集的數據。這可能很乏味,但是如果你在機器學習流水線中設置了數據清理步驟,就可以隨意修改并重復這一工作。
機器學習的數據編碼與規范化
要使用分類數據進行機器分類,需要將文本標簽編碼為另一種形式。有兩種常見的編碼方法。
一種是標簽編碼,這意味著每個文本標簽值都被一個數字替換。另一種是one-hot編碼,這意味著每一文本標簽值都被轉換為包含一個二進制值(1或0)的列。大多數機器學習框架都具有為你進行轉換的功能。一般來說,最好使用one-hot編碼,因為標簽編碼有時會使機器學習算法誤認為編碼的列是有序的。
使用數字數據進行機器回歸時,通常需要對數據進行規范化。否則,范圍較大的數字可能傾向于控制特征向量之間的歐幾里得距離,其效果會被放大,但是以犧牲其他字段為代價,并且最陡的下降優化可能難以收斂。機器學習的數據規范化和標準化方法有很多種,包括最小最大規范化、均值規范化、標準化和單位長度縮放等。這一過程通常被稱為特征縮放。
機器學習的特征工程
特征是指所觀察到的現象中的個體可測量屬性或者特性。“特征”的概念與解釋變量概念有關,而解釋變量用于線性回歸等統計方法。特征向量將一行的所有特征組合成一個數字向量。
選擇特征的一種技巧是選擇一組能解釋問題的最小獨立變量。如果兩個變量高度相關,要么它們應組合成一個特征,要么應該刪除其中一個。有時人們進行主分量分析,將相關變量轉換成一組線性不相關的變量。
人們用來構造新特征或者減少特征向量維數的一些轉換其實很簡單。例如,把死亡年份與出生年份相減,就得到了死亡年齡,這是壽命和死亡率分析的主要獨立變量。在其他情況下,特征構造可能不那么明顯。
常用的機器學習算法
有幾十種機器學習算法,從線性回歸和邏輯回歸到深度神經網絡和集成(其他模型的組合),復雜程度各不相同。而一些最常見的算法包括:
·線性回歸,又名最小二乘回歸(用于數值數據)。
·邏輯回歸(用于二元分類)。
·線性判別分析(用于多類別分類)。
·決策樹(用于分類和回歸)。
·樸素貝葉斯(用于分類和回歸)。
·K最近鄰居,又名KNN(用于分類和回歸)。
·學習向量量化,又名LVQ(用于分類和回歸)。
·支持向量機,又名SVM(用于二元分類)。
·隨機森林,一種“打包”(自舉聚合)集成算法(用于分類和回歸)。
·提升方法,包括AdaBoost和XGBoost,是一種集成算法,可以創建一系列模型,其中每個增量模型都試圖糾正前一個模型的錯誤(用于分類和回歸)。
·神經網絡(用于分類和回歸)。
超參數調整
超參數是自由變量,而不是機器學習模型中被調整的權重。超參數隨算法的不同而不同,但通常包括學習速率,該參數用于控制批量計算錯誤后所應用的校正深度。
一些產品化的機器學習平臺現在提供自動超參數調整功能。本質上,你告訴系統想要改變哪些超參數,可能想要優化什么指標,系統會在允許的次數范圍內掃描這些超參數。(谷歌云機器學習引擎的超參數調整功能從TensorFlow模型中提取適當的度量指標,因此你不必指定它。)
掃描超參數的搜索算法主要有三種:貝葉斯優化、網格搜索和隨機搜索。貝葉斯優化往往是最有效的。你能夠很容易地在代碼中實現自己的超參數掃描功能——即使你所使用的平臺沒有自動執行。
總之,監督學習把標記過的訓練數據轉化為經過調優的預測模型。在此過程中,你應該清理數據并使之規范化,設計一組線性不相關的特征參數,并嘗試使用多種算法來找到最佳模型。
Martin Heller是InfoWorld的特約編輯和審稿人。他曾是一名網絡和Windows編程顧問,1986年至2010年間開發過數據庫、軟件和網站。
原文網址
https://www.infoworld.com/article/3403403/supervised-learning-explained.html