sklearn調包俠之無敵小抄

2021-09-11 16:32:21 字數 1289 閱讀 4645

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

資料匯入

sklearn支援的資料格式有numpy陣列和pandas的dataframe格式,當然,sklearn也提供了一些資料集,通過下面**可以匯入資料集(具體資料集見後文)。

from sklearn import datasets
資料預處理

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

模型選擇

針對不同的問題需要選擇不同的模型,有label標籤且為離散值的為分類,有label標籤且為連續值的是回歸,無label的就要用無監督的方法了。但針對某個特定問題,如何選擇演算法了,可以看下圖。

但很不幸的是:「沒有免費的午餐定理」告訴我們,脫離具體問題去討論選擇什麼演算法更好是毫無意義的,在現實建模中,我們通過多個模型比較評估結果來選擇最終模型。

模型訓練

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

模型測試

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

模型優化

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

tips

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

sklearn調包俠之KNN演算法

天下武功,唯快不破。今天就正式講解如何通過 sklearn小抄 武林秘籍,成為一代宗師調包俠。欲練此功,必先自宮 就算自宮,未必成功 若不自宮,也能成功。傳說江湖 機器學習領域 有兩大派別 一是學術派,該派資歷高,家境好,多為名門世家 學歷高,數學好 重基礎 數學推導和理論知識 一是實踐派,以找人切...

sklearn調包俠之邏輯回歸

傳送門 機器學習實戰之logistic回歸 正則化這裡補充下正則化的知識。當乙個模型太複雜時,就容易過擬合,解決的辦法是減少輸入特徵的個數,或者獲取更多的訓練樣本。正則化也是用來解決模型過擬合的一種方法。常用的有l1和l2範數做為正則化項。資料匯入 本次實戰依舊是使用sklearn中的資料集,如圖所...

sklearn調包俠之KNN演算法

天下武功,唯快不破。今天就正式講解如何通過 sklearn小抄 武林秘籍,成為一代宗師調包俠。欲練此功,必先自宮 就算自宮,未必成功 若不自宮,也能成功。傳說江湖 機器學習領域 有兩大派別 一是學術派,該派資歷高,家境好,多為名門世家 學歷高,數學好 重基礎 數學推導和理論知識 一是實踐派,以找人切...