完整的端到端的机器学习流程(附代码和数据)|比赛、工程都可以用!
近日在github上發(fā)現(xiàn)一個機器學(xué)習(xí)的完整流程,附代碼非常全,幾乎適合任何監(jiān)督學(xué)習(xí)的分類問題,本文提供代碼和數(shù)據(jù)下載。
作者:WillKoehrsen
翻譯:DeqianBai(https://github.com/DeqianBai)
編輯:黃海廣
項目來源:
這是2018年夏天,一位美國數(shù)據(jù)科學(xué)家在申請工作時的“作業(yè)”,完整的英文版作業(yè)在:
https://github.com/WillKoehrsen/machine-learning-project-walkthrough/blob/master/hw_assignment.pdf
項目目標(biāo):
使用提供的建筑能源數(shù)據(jù)開發(fā)一個模型,該模型可以預(yù)測建筑物的能源之星得分,
然后解釋結(jié)果以找到最能預(yù)測得分的變量。
項目介紹:
這是一個受監(jiān)督的回歸機器學(xué)習(xí)任務(wù):給定一組包含目標(biāo)(在本例中為分?jǐn)?shù))的數(shù)據(jù),我們希望訓(xùn)練一個可以學(xué)習(xí)將特征(也稱為解釋變量)映射到目標(biāo)的模型。
受監(jiān)督問題:我們可以知道數(shù)據(jù)的特征和目標(biāo),我們的目標(biāo)是訓(xùn)練可以學(xué)習(xí)兩者之間映射關(guān)系的模型。
回歸問題:Energy Star Score是一個連續(xù)變量。
在訓(xùn)練中,我們希望模型能夠?qū)W習(xí)特征和分?jǐn)?shù)之間的關(guān)系,因此我們給出了特征和答案。然后,為了測試模型的學(xué)習(xí)效果,我們在一個從未見過答案的測試集上進(jìn)行評估
我們在拿到一個機器學(xué)習(xí)問題之后,要做的第一件事就是制作出我們的機器學(xué)習(xí)項目清單。下面給出了一個可供參考的機器學(xué)習(xí)項目清單,它應(yīng)該適用于大多數(shù)機器學(xué)習(xí)項目,雖然確切的實現(xiàn)細(xì)節(jié)可能有所不同,但機器學(xué)習(xí)項目的一般結(jié)構(gòu)保持相對穩(wěn)定:
數(shù)據(jù)清理和格式化
探索性數(shù)據(jù)分析
特征工程和特征選擇
基于性能指標(biāo)比較幾種機器學(xué)習(xí)模型
對最佳模型執(zhí)行超參數(shù)調(diào)整
在測試集上評估最佳模型
解釋模型結(jié)果
得出結(jié)論
提前設(shè)置機器學(xué)習(xí)管道結(jié)構(gòu)讓我們看到每一步是如何流入另一步的。但是,機器學(xué)習(xí)管道是一個迭代過程,因此我們并不總是以線性方式遵循這些步驟。我們可能會根據(jù)管道下游的結(jié)果重新審視上一步。例如,
雖然我們可以在構(gòu)建任何模型之前執(zhí)行特征選擇,但我們可以使用建模結(jié)果返回并選擇一組不同的特征。
或者,建模可能會出現(xiàn)意想不到的結(jié)果,這意味著我們希望從另一個角度探索我們的數(shù)據(jù)。
一般來說,你必須完成一步才能繼續(xù)下一步,但不要覺得一旦你第一次完成一步,你就不能回頭做出改進(jìn)!你可以在任何時候返回前面的步驟并作出相應(yī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)練集和測試集
3.4 建立Baseline
小結(jié)
4. 基于性能指標(biāo)比較幾種機器學(xué)習(xí)模型
4.1 輸入缺失值
4.2 特征縮放
4.3 需要評估的模型
5. 對最佳模型執(zhí)行超參數(shù)調(diào)整
5.1 超參數(shù)
5.2 使用隨機搜索和交叉驗證進(jìn)行超參數(shù)調(diào)整
6. 在測試集上評估最佳模型
7. 解釋模型結(jié)果
7.1 特征重要性
7.2 使用特征重要性進(jìn)行特征選擇
7.3 本地可解釋的與模型無關(guān)的解釋
7.4 檢查單個決策樹
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é)
本文是一個完整的監(jiān)督學(xué)習(xí)的機器學(xué)習(xí)流程,包含:
數(shù)據(jù)清理,探索性數(shù)據(jù)分析,特征工程和選擇等常見問題的解決辦法
隨機搜索,網(wǎng)格搜索,交叉驗證等方法尋找最優(yōu)超參數(shù)
可視化決策樹
對完整的機器學(xué)習(xí)項目流程建立一個宏觀的了解
代碼非常完整,可以在平時的機器學(xué)習(xí)項目中拿來用,只需要改少量代碼即可。
本文代碼和數(shù)據(jù)下載:
https://github.com/DeqianBai/Your-first-machine-learning-Project---End-to-End-in-Python
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機器學(xué)習(xí)在線手冊深度學(xué)習(xí)在線手冊AI基礎(chǔ)下載(pdf更新到25集)本站qq群1003271085,加入本站微信群請回復(fù)“加群”獲取一折本站知識星球優(yōu)惠券,請回復(fù)“知識星球”喜歡文章,點個在看
總結(jié)
以上是生活随笔為你收集整理的完整的端到端的机器学习流程(附代码和数据)|比赛、工程都可以用!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 应届算法岗,选择巨头还是AI明星创业公司
- 下一篇: 全国人工智能大赛 行人重识别(Perso