天天看點

labuladong的算法小抄pdf_sklearn調包俠之無敵小抄

labuladong的算法小抄pdf_sklearn調包俠之無敵小抄
labuladong的算法小抄pdf_sklearn調包俠之無敵小抄

scikit-learn(以下簡稱為sklearn)是用Python開發的機器學習庫,其中包含大量機器學習算法、資料集,是資料挖掘友善的工具。本教程參考《Python機器學習及實戰》、《scikit-learn機器學習》和sklearn的官方文檔,詳細講解如何使用sklearn實作機器學習算法。首先,依舊講講寫本系列教程的原因:第一,相比于直接編寫各種算法,sklearn簡單容易上手;第二,參考書籍有些部分講解不細緻,sklearn版本的更新,官方文檔雖然齊全,但是是英文等等,希望通過編寫這個教程,可以讓讀者輕松上手機器學習;第三,依舊是本人的學習記錄過程。

本系列教程特點:

  • 好學易用
  • 案例實操多

哪些讀者可以使用:

  • 了解機器學習的基本術語
  • 會Python語言
  • 會numpy和pandas庫的使用

sklearn小抄

在愉悅的做一個調包俠之前,老衲給予施主一份絕世寶典(sklearn小抄),之後你的任督二脈将會打開,在sklearn調包的路上所向披靡。首先上寶典,高清pdf請前往此處下載下傳: (連結:https://pan.baidu.com/s/12c0CIP6c6rgc4Y5zEnUJxA 密碼:13au)。

labuladong的算法小抄pdf_sklearn調包俠之無敵小抄

資料導入

sklearn支援的資料格式有numpy數組和pandas的DataFrame格式,當然,sklearn也提供了一些資料集,通過下面代碼可以導入資料集(具體資料集見後文)。

  1. from sklearn import datasets

資料預處理

“garbage in garbage out”,一個好的模型很大程度上基于一個幹淨有效的源資料,是以在訓練模型之前,需要針對已有資料進行清洗和處理。資料預處理的方法有很多:資料的缺失值清洗;資料标準化/中心化/歸一化;啞編碼;生成多項式特征等等,這個需要根據具體的資料進行相對應的處理。

模型選擇

針對不同的問題需要選擇不同的模型,有label标簽且為離散值的為分類,有label标簽且為連續值的是回歸,無label的就要用無監督的方法了。但針對某個特定問題,如何選擇算法了,可以看下圖。 但很不幸的是:“沒有免費的午餐定理”告訴我們,脫離具體問題去讨論選擇什麼算法更好是毫無意義的,在現實模組化中,我們通過多個模型比較評估結果來選擇最終模型。

labuladong的算法小抄pdf_sklearn調包俠之無敵小抄

模型訓練

在模型訓練前,需要将資料集切分為訓練集和測試集(73開或者其它)。sklearn訓練模型很簡單,在具體執行個體中講解。

模型測試

針對不同類模型,模型的評價名額都不同,具體可看小抄和sklearn.metrics子產品。在模型測試中,我們常常使用交叉驗證的方法。

模型優化

模型一般都是有很多參數的,如何選擇最優的參數,可使用網格搜尋和随機參數優化。

tips

針對各個過程的詳細介紹,會在具體案例中講解。