逃离数学焦虑、算法选择,思考做好机器学习项目的3个核心问题
機器學習是目前人工智能最令人激動的研究方向之一。我們可能更關注機器學習算法的實現細節,沉浸于機器學習所需要的數學功底,但對于機器學習從業者來說,如何更好更快速的實現一個機器學習項目更值得關注。
?
正如吳恩達在《機器學習》這門課中所說,他將花費更多的時間來教授機器學習、人工智能的最佳實踐以及如何讓它們工作。好的工具,在會用和不會用的人之間存在著鴻溝。
當我們做一個機器學習項目時,不糾結于各個模型算法的內部細節,從整體的角度看具體問題該如何更可靠更高效得出結論,才不至于浪費更多的時間。從對數學的焦慮中,眾多算法的選擇中抽身出來, 去思考以下幾個問題:
我們如何在項目中選擇更為合適的算法?
選擇算法之后,如何知道我們的模型是更有用的或更好的?
如何進一步優化模型以達到更理想的效果?
?
本文將基于上述幾個問題展開,在此之前,首先明確幾個概念。
?
機器學習:機器學習是一門涉及多領域,多門學科理論的交叉學科,通過一個程序使其能從已有的經驗中學習,從而能提升對某一項任務的解決能力。
?
有監督學習:有監督學習是指需要給出一定量的標簽指導計算機去完成任務。就像一個學生需要在老師的教導啟發下進行學習。
如預測房屋的價格,需要預先知道一些房屋的價格以及房屋的有關屬性的數據,對已有數據進行訓練后,得到的模型將會產生對不同屬性房屋特性的價格預測情況。
?
無監督學習:無監督學習顧名思義是指不需要給定標簽,讓模型自己訓練,得出結論。類似于一個學生通過自己的積累產生對知識的理解。
如有一些房屋的有關屬性的數據, 模型可以自動識別出哪些特征是屬于市中心的房子, 哪些事屬于郊區的房子,得到的模型可以產生對不同房屋屬性的類別的判斷。
?
01選擇合適的算法針對具體的問題選擇不同的算法。
如一個分類問題可優先選擇邏輯回歸,支持向量機,神經網絡等模型,數據集較大的問題優先選擇樸素貝葉斯方法,決策樹和邏輯回歸具有可解釋性。聚類問題我們可能會考慮層次分析,k均值模型。 如果數據集的特征很多,可以考慮采用主成分分析,線性判別分析等進行降維。
第一步,明確具體問題
明確目標任務,進而實現對算法的選擇。
有監督學習主要有回歸和分類任務:
回歸是研究因變量與自變量之間關系的方法。
上文所說的房屋價格的預測的例子就是一個回歸問題,構建房屋價格與房屋其他屬性之間關系的模型, 實現新房屋的價格的預測,我們預測的是一個模型的連續性的值。
?
分類將數據集按照不同的特點分為不同的類別。
如金融市場中一個常見的預測股價漲跌的示例,給定一段時間內股價的漲跌方向作為模型的輸出,即我們設定的標簽,預測后一段時間股價的漲跌情況,這里的結果只會有漲和跌兩種情況,預測的是間斷的值。
?
無監督學習主要有聚類和降維任務:
聚類將數據集分為多個類似的對象組成的多個類。
當我們在網站上搜索一條內容的時候,網站會有相似的內容推薦,這是因為網站通過聚類的方式將有相似瀏覽特征的客戶聚集在一起共同分析,以便更了解客戶。聚類與分類的差別是,分類是我們知道怎樣的特征能夠屬于一類,并設定了標簽,而聚類分的類別則完全是模型自主切分。
?
降維的基本原理是將樣本點從輸入空間通過線性或非線性變換映射到一個低維空間,從而降低了原數據集的維度,同時又能盡量減少數據信息的丟失。經過降維,一方面可以對數據進行可視化研究,另一方面由于數據量大大減少,將提高機器學習的效率。
?
第二步,選擇算法
明確項目的任務,對算法有進一步的了解,可以幫助我們了解模型的使用細節,以便更快速實現模型。
?
我們將一些算法模型整理成如下思維導圖的形式,并對相關算法的基本思想做了簡單闡述。
你可以很快速的瀏覽每個算法的核心及應用,在面對實際問題時做出大致的判斷。
?
?
我們論述了有關問題的定位以及相關算法模型的選擇,但需要注意的是,我們已經針對算法模型有一個初步的定位,在實踐過程中仍然需要將實際數據與模型結合考慮。最初嘗試時可以使用較少的數據量快速過濾出一些算法,最終選定少數的算法進行后續的優化。同時,對數據的理解程度也將影響模型的選擇,對數據越熟悉越能夠做出更高效的判斷。
?
02模型評估選擇合適的算法之后,如何知道我們所設計的模型是有用的或者較好的?
機器學習是利用模型對數據進行擬合,對訓練集進行擬合,訓練模型,對樣本外數據集進行預測。其中模型對訓練集數據的誤差稱為經驗誤差, 對測試集數據的誤差稱為泛化誤差。模型對樣本外數據集的預測能力稱為模型的泛化能力。
過擬合與欠擬合
欠擬合和過擬合都是模型泛化能力不高的表現。欠擬合通常表現為模型學習能力不足,沒有學習到數據的一般規律。而過擬合則是模型捕捉到數據中太多的特征,以至于將所有特征都認為是數據的一般規律。如下圖樹葉的示例很形象的表達了欠擬合與過擬合。
?
?
我們希望的狀態是模型能訓練出數據的一般規律,既不過擬合,也不欠擬合。如下圖所示,最左側可能是一種欠擬合狀態,擬合的函數和訓練集的誤差較大,最右側是過擬合,擬合的函數與訓練集幾乎完全匹配,這種情況在測試集中結果反而會變差。由此,需要構建評估模型來評估模型的泛化能力,這是檢驗一個模型是否更為有效的方法。
?
評估方法
?
將一個模型的訓練集也當作測試集會導致對模型泛化能力的評估不準確,因此我們需要將數據拆分,即使用訓練集進行訓練, 測試集進行驗證評估模型的準確性, 兩個數據集不相交,從而驗證模型的泛化能力。
常見的模型評估方法有留出法,k折交叉驗證法和自助法:
?
?
K折交叉驗證中k一般會選擇5,10,20,其中k越大需要訓練的次數越長,其誤差估計的效果也越好。在驗證中,訓練集和測試集的數據分布應盡可能一致,如果不一致,可能會影響測試集的誤差。
?
03優化模型評估模型的泛化能力評估,當模型的應用不理想時,我們應該如何優化模型?假設我們在做一個預測模型時, 預測的結果與實際有很大的誤差。我們知道模型不理想主要來源于模型的欠擬合和過擬合,接下來該如何做?
?
學習曲線
?
考慮使用學習曲線來判斷模型的過擬合問題。
學習曲線是通過畫出不同訓練集大小時訓練集和交叉驗證的準確率,可以看到模型在新數據上的表現,進而判斷模型是否方差偏高或偏差過高,以及增大訓練集是否可以減小過擬合。
?
?
當訓練集與測試集的誤差收斂但卻很高時,為高偏差,左上角偏差較高,訓練集和驗證集的準確率很低,可能是欠擬合。當訓練集與測試集的誤差之間有很大的差距時,為高方差,右上角中方差較高,訓練集的準確率要高于驗證集的準確率,可能是過擬合。理想的狀況是偏差和方差都很小,此時既不欠擬合也不過擬合。
?
優化模型
?
基于上文,當模型出現過擬合或欠擬合時,可從以下幾個方面考慮:
1. 數據量的多少。較少的數據量更容易過擬合,增大數據量對過擬合是有效的。
2. 增加或減少特征量。特征值較少會影響模型對樣本數據的認識,導致欠擬合,增加特征值對欠擬合時有效的。
3. 增加或減少正則化。正則化的使用對過擬合是有效的。
?
具體可以參見以下思維導圖:
?
一個機器學習項目是實踐與理論相結合的過程,通過實踐加深對理論的認識,學習理論提高對實際問題的應用能力。在不斷熟悉實際問題的數據類型與背景的過程中,通過訓練機器學習模型,使用各種方法調整并優化模型以得到滿意的結論,這一過程可能比單一熟悉機器學習算法理論耗時要長。 通常情況下,我們會花更多的時間在數據的預處理和參數調優上,需要不斷調整數據,優化模型,直到達到較為理想的效果。
如果想要更好的加強這方面的鍛煉,建議多交流,看看別人的經驗總結,網易云課堂推出機器學習微專業,目前有免費的直播課程,由行業專業人士免費為各位答疑解惑,加強交流。以下福利都是限時免費送出,感興趣的不要錯過:
Part.1
免費直播課從理論到實踐,教你輕松應對面試中的SVM
<2月20日 周三 20:00>
直播大綱:
1 AI大廈的基礎 :數學
2 誰說SVM只能做分類???
3 面試重點:SVM目標函數推導
4 案例實戰:基于SVM的手寫數字識別
直播講師:
網易特邀AI講師Jason
Part.2
免費體驗課
▼
《機器學習基礎》
課程大綱
1 機器學習的就業前景
2 Python實戰學習
(附15天學習計劃和趣味項目源碼)
3 機器學習工程師的實際應用
小姐姐群內答疑
▼
Part.3
人工智能學習資料包
▼
6個實戰案例學習資料及代碼
▼
面試相關問題
▼
程序員簡歷模板
▼
數學基礎學習資料
▼
134篇國際經典論文集
Part.4
答疑助力+福利獲取方式
掃碼添加小助手,即可免費獲取以上所有福利
席位有限,先到先得~
總結
以上是生活随笔為你收集整理的逃离数学焦虑、算法选择,思考做好机器学习项目的3个核心问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NLP Chinese Corpus:大
- 下一篇: 能量视角下的GAN模型(二):GAN=“