機器學(xué)習(xí)入門之sklearn介紹

SKlearn簡介

scikit-learn,又寫作sklearn,是一個開源的基于python語言的機器學(xué)習(xí)工具包。它通過NumPy, SciPy和Matplotlib等python數(shù)值計算的庫實現(xiàn)高效的算法應(yīng)用,并且涵蓋了幾乎所有主流機器學(xué)習(xí)算法。

SKlearn官網(wǎng)鏈接:http://scikit-learn.org/stable/index.html

在工程應(yīng)用中,用python手寫代碼來從頭實現(xiàn)一個算法的可能性非常低,這樣不僅耗時耗力,還不一定能夠?qū)懗鰳?gòu)架清晰,穩(wěn)定性強的模型。更多情況下,是分析采集到的數(shù)據(jù),根據(jù)數(shù)據(jù)特征選擇適合的算法,在工具包中調(diào)用算法,調(diào)整算法的參數(shù),獲取需要的信息,從而實現(xiàn)算法效率和效果之間的平衡。而sklearn,正是這樣一個可以幫助我們高效實現(xiàn)算法應(yīng)用的工具包。

sklearn有一個完整而豐富的官網(wǎng),里面講解了基于sklearn對所有算法的實現(xiàn)和簡單應(yīng)用。

常用模塊

sklearn中常用的模塊有分類、回歸、聚類、降維、模型選擇、預(yù)處理。

SKlearn官網(wǎng)主頁

分類:識別某個對象屬于哪個類別,常用的算法有:SVM(支持向量機)、nearest neighbors(最近鄰)、random forest(隨機森林),常見的應(yīng)用有:垃圾郵件識別、圖像識別。

回歸:預(yù)測與對象相關(guān)聯(lián)的連續(xù)值屬性,常見的算法有:SVR(支持向量機)、 ridge regression(嶺回歸)、Lasso,常見的應(yīng)用有:藥物反應(yīng),預(yù)測股價。

聚類:將相似對象自動分組,常用的算法有:k-Means、 spectral clustering、mean-shift,常見的應(yīng)用有:客戶細(xì)分,分組實驗結(jié)果。

降維:減少要考慮的隨機變量的數(shù)量,常見的算法有:PCA(主成分分析)、feature selection(特征選擇)、non-negative matrix factorization(非負(fù)矩陣分解),常見的應(yīng)用有:可視化,提高效率。

模型選擇:比較,驗證,選擇參數(shù)和模型,常用的模塊有:grid search(網(wǎng)格搜索)、cross validation(交叉驗證)、 metrics(度量)。它的目標(biāo)是通過參數(shù)調(diào)整提高精度。

預(yù)處理:特征提取和歸一化,常用的模塊有:preprocessing,feature extraction,常見的應(yīng)用有:把輸入數(shù)據(jù)(如文本)轉(zhuǎn)換為機器學(xué)習(xí)算法可用的數(shù)據(jù)。

安裝SKlearn

安裝最新版本

Scikit-learn需要:

  • Python(> = 2.7或> = 3.4),

  • NumPy(> = 1.8.2),

  • SciPy(> = 0.13.3)。

【注意】Scikit-learn 0.20是支持Python 2.7和Python 3.4的最后一個版本。Scikit-learn 0.21將需要Python 3.5或更高版本。

如果你已經(jīng)安裝了numpy和scipy,那么安裝scikit-learn的最簡單方法就是使用 pip或者canda

pip install -U scikit-learn
conda install scikit-learn

如果你尚未安裝NumPy或SciPy,你也可以使用conda或pip安裝它們。使用pip時,請確保使用binary wheels,并且不會從源頭重新編譯NumPy和SciPy,這可能在使用特定配置的操作系統(tǒng)和硬件(例如Raspberry Pi上的Linux)時發(fā)生。從源代碼構(gòu)建numpy和scipy可能很復(fù)雜(特別是在Windows上),需要仔細(xì)配置以確保它們與線性代數(shù)例程的優(yōu)化實現(xiàn)相關(guān)聯(lián)。為了方便,我們可以使用如下所述的第三方發(fā)行版本。

發(fā)行版本

如果你還沒有numpy和scipy的python安裝,我們建議你通過包管理器或通過python bundle安裝。它們帶有numpy,scipy,scikit-learn,matplotlib以及許多其他有用的科學(xué)和數(shù)據(jù)處理庫。

可用選項包括:Canopy和Anaconda適用于所有支持的平臺

除了用于Windows,Mac OSX和Linux的大量科學(xué)python庫之外,CanopyAnaconda都提供了最新版本的scikit-learn。

Anaconda提供scikit-learn作為其免費發(fā)行的一部分。

【注意】pip和conda命令不要混用?。?!

要升級或卸載scikit-learn安裝了python或者conda不應(yīng)該使用PIP命令

升級scikit-learnconda update scikit-learn

卸載scikit-learnconda remove scikit-learn

使用pip install -U scikit-learn安裝或者使用pip uninstall scikit-learn卸載可能都沒有辦法更改有conda命令安裝的sklearn。

算法選擇

sklearn 實現(xiàn)了很多算法,面對這么多的算法,如何去選擇呢?其實選擇的主要考慮的就是需要解決的問題以及數(shù)據(jù)量的大小。sklearn官方提供了一個選擇算法的引導(dǎo)圖。

https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html

這里提供翻譯好的中文版本,供大家參考:

模型選擇
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容