【機(jī)器學(xué)習(xí)】機(jī)器學(xué)習(xí)項(xiàng)目流程
項(xiàng)目來源:
這是一個(gè)機(jī)器學(xué)習(xí)的完整流程,附代碼非常全,幾乎適合任何監(jiān)督學(xué)習(xí)的分類問題,本文提供代碼和數(shù)據(jù)下載。
作者:WillKoehrsen
翻譯:DeqianBai(https://github.com/DeqianBai)
這是2018年夏天,一位美國數(shù)據(jù)科學(xué)家在申請(qǐng)工作時(shí)的“作業(yè)”,完整的英文版作業(yè)在:
https://github.com/WillKoehrsen/machine-learning-project-walkthrough/blob/master/hw_assignment.pdf
項(xiàng)目目標(biāo):
使用提供的建筑能源數(shù)據(jù)開發(fā)一個(gè)模型,該模型可以預(yù)測(cè)建筑物的能源之星得分, 然后解釋結(jié)果以找到最能預(yù)測(cè)得分的變量。
項(xiàng)目介紹:
這是一個(gè)受監(jiān)督的回歸機(jī)器學(xué)習(xí)任務(wù):給定一組包含目標(biāo)(在本例中為分?jǐn)?shù))的數(shù)據(jù),我們希望訓(xùn)練一個(gè)可以學(xué)習(xí)將特征(也稱為解釋變量)映射到目標(biāo)的模型。
受監(jiān)督問題:我們可以知道數(shù)據(jù)的特征和目標(biāo),我們的目標(biāo)是訓(xùn)練可以學(xué)習(xí)兩者之間映射關(guān)系的模型。 回歸問題:Energy Star Score是一個(gè)連續(xù)變量。
在訓(xùn)練中,我們希望模型能夠?qū)W習(xí)特征和分?jǐn)?shù)之間的關(guān)系,因此我們給出了特征和答案。然后,為了測(cè)試模型的學(xué)習(xí)效果,我們?cè)谝粋€(gè)從未見過答案的測(cè)試集上進(jìn)行評(píng)估
我們?cè)?strong>拿到一個(gè)機(jī)器學(xué)習(xí)問題之后,要做的第一件事就是制作出我們的機(jī)器學(xué)習(xí)項(xiàng)目清單。下面給出了一個(gè)可供參考的機(jī)器學(xué)習(xí)項(xiàng)目清單,它應(yīng)該適用于大多數(shù)機(jī)器學(xué)習(xí)項(xiàng)目,雖然確切的實(shí)現(xiàn)細(xì)節(jié)可能有所不同,但機(jī)器學(xué)習(xí)項(xiàng)目的一般結(jié)構(gòu)保持相對(duì)穩(wěn)定:
數(shù)據(jù)清理和格式化
探索性數(shù)據(jù)分析
特征工程和特征選擇
基于性能指標(biāo)比較幾種機(jī)器學(xué)習(xí)模型
對(duì)最佳模型執(zhí)行超參數(shù)調(diào)整
在測(cè)試集上評(píng)估最佳模型
解釋模型結(jié)果
得出結(jié)論
提前設(shè)置機(jī)器學(xué)習(xí)管道結(jié)構(gòu)讓我們看到每一步是如何流入另一步的。但是,機(jī)器學(xué)習(xí)管道是一個(gè)迭代過程,因此我們并不總是以線性方式遵循這些步驟。我們可能會(huì)根據(jù)管道下游的結(jié)果重新審視上一步。例如,
雖然我們可以在構(gòu)建任何模型之前執(zhí)行特征選擇,但我們可以使用建模結(jié)果返回并選擇一組不同的特征。 或者,建模可能會(huì)出現(xiàn)意想不到的結(jié)果,這意味著我們希望從另一個(gè)角度探索我們的數(shù)據(jù)。 一般來說,你必須完成一步才能繼續(xù)下一步,但不要覺得一旦你第一次完成一步,你就不能回頭做出改進(jìn)!你可以在任何時(shí)候返回前面的步驟并作出相應(yīng)的修改。
代碼部分
代碼部分較長(zhǎng),僅貼代碼的目錄,完整代碼在文末提供下載。
1. 數(shù)據(jù)清理和格式化
1.1 加載并檢查數(shù)據(jù) 1.2 ?數(shù)據(jù)類型和缺失值 1.2.1 將數(shù)據(jù)轉(zhuǎn)換為正確的類型 1.3 處理缺失值
2. 探索性數(shù)據(jù)分析
2.1 單變量圖 2.2 去除異常值 2.3 尋找關(guān)系 2.4 特征與目標(biāo)之間的相關(guān)性 2.5 雙變量圖(Two-Variable Plots) 2.5.1 Pairs Plot
3. 特征工程和特征選擇
3.1 特征工程 3.2 特征選擇(去除共線特征) 3.3 劃分訓(xùn)練集和測(cè)試集 3.4 建立Baseline 小結(jié)
4. 基于性能指標(biāo)比較幾種機(jī)器學(xué)習(xí)模型
4.1 輸入缺失值 4.2 特征縮放 4.3 需要評(píng)估的模型
5. 對(duì)最佳模型執(zhí)行超參數(shù)調(diào)整
5.1 超參數(shù) 5.2 使用隨機(jī)搜索和交叉驗(yàn)證進(jìn)行超參數(shù)調(diào)整
6. 在測(cè)試集上評(píng)估最佳模型
7. 解釋模型結(jié)果
7.1 特征重要性 7.2 使用特征重要性進(jìn)行特征選擇 7.3 本地可解釋的與模型無關(guān)的解釋 7.4 檢查單個(gè)決策樹
8. 得出結(jié)論
8.1 得出結(jié)論 記錄發(fā)現(xiàn)
代碼截圖




參考
[1] https://github.com/WillKoehrsen/machine-learning-project-walkthrough
[2]?https://github.com/DeqianBai/Your-first-machine-learning-Project---End-to-End-in-Python
[3]??DeqianBai(https://github.com/DeqianBai)
總結(jié)
本文是一個(gè)完整的監(jiān)督學(xué)習(xí)的機(jī)器學(xué)習(xí)流程,包含:
數(shù)據(jù)清理,探索性數(shù)據(jù)分析,特征工程和選擇等常見問題的解決辦法 隨機(jī)搜索,網(wǎng)格搜索,交叉驗(yàn)證等方法尋找最優(yōu)超參數(shù) 可視化決策樹 對(duì)完整的機(jī)器學(xué)習(xí)項(xiàng)目流程建立一個(gè)宏觀的了解
代碼非常完整,可以在平時(shí)的機(jī)器學(xué)習(xí)項(xiàng)目中拿來用,只需要改少量代碼即可。
推薦閱讀
決策樹可視化,被驚艷到了! 開發(fā)機(jī)器學(xué)習(xí)APP,太簡(jiǎn)單了 周志華教授:關(guān)于深度學(xué)習(xí)的一點(diǎn)思考 200 道經(jīng)典機(jī)器學(xué)習(xí)面試題總結(jié) 卷積神經(jīng)網(wǎng)絡(luò)(CNN)數(shù)學(xué)原理解析
如有收獲,歡迎三連
