![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SNhVzN4UGZxYTYmJzYllzYhZjNjRjYwADN0MGO5YDZ28CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
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)。
資料導入
sklearn支援的資料格式有numpy數組和pandas的DataFrame格式,當然,sklearn也提供了一些資料集,通過下面代碼可以導入資料集(具體資料集見後文)。
-
from sklearn import datasets
資料預處理
“garbage in garbage out”,一個好的模型很大程度上基于一個幹淨有效的源資料,是以在訓練模型之前,需要針對已有資料進行清洗和處理。資料預處理的方法有很多:資料的缺失值清洗;資料标準化/中心化/歸一化;啞編碼;生成多項式特征等等,這個需要根據具體的資料進行相對應的處理。
模型選擇
針對不同的問題需要選擇不同的模型,有label标簽且為離散值的為分類,有label标簽且為連續值的是回歸,無label的就要用無監督的方法了。但針對某個特定問題,如何選擇算法了,可以看下圖。 但很不幸的是:“沒有免費的午餐定理”告訴我們,脫離具體問題去讨論選擇什麼算法更好是毫無意義的,在現實模組化中,我們通過多個模型比較評估結果來選擇最終模型。
模型訓練
在模型訓練前,需要将資料集切分為訓練集和測試集(73開或者其它)。sklearn訓練模型很簡單,在具體執行個體中講解。
模型測試
針對不同類模型,模型的評價名額都不同,具體可看小抄和sklearn.metrics子產品。在模型測試中,我們常常使用交叉驗證的方法。
模型優化
模型一般都是有很多參數的,如何選擇最優的參數,可使用網格搜尋和随機參數優化。
tips
針對各個過程的詳細介紹,會在具體案例中講解。