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