SKlearn簡(jiǎn)介
scikit-learn村砂,又寫作sklearn佳窑,是一個(gè)開源的基于python語言的機(jī)器學(xué)習(xí)工具包单旁。它通過NumPy, SciPy和Matplotlib等python數(shù)值計(jì)算的庫(kù)實(shí)現(xiàn)高效的算法應(yīng)用墨林,并且涵蓋了幾乎所有主流機(jī)器學(xué)習(xí)算法。
SKlearn官網(wǎng)鏈接:http://scikit-learn.org/stable/index.html
在工程應(yīng)用中韧掩,用python手寫代碼來從頭實(shí)現(xiàn)一個(gè)算法的可能性非常低紊浩,這樣不僅耗時(shí)耗力,還不一定能夠?qū)懗鰳?gòu)架清晰揍很,穩(wěn)定性強(qiáng)的模型郎楼。更多情況下,是分析采集到的數(shù)據(jù)窒悔,根據(jù)數(shù)據(jù)特征選擇適合的算法呜袁,在工具包中調(diào)用算法,調(diào)整算法的參數(shù)简珠,獲取需要的信息阶界,從而實(shí)現(xiàn)算法效率和效果之間的平衡。而sklearn聋庵,正是這樣一個(gè)可以幫助我們高效實(shí)現(xiàn)算法應(yīng)用的工具包膘融。
sklearn有一個(gè)完整而豐富的官網(wǎng),里面講解了基于sklearn對(duì)所有算法的實(shí)現(xiàn)和簡(jiǎn)單應(yīng)用祭玉。
常用模塊
sklearn中常用的模塊有分類氧映、回歸、聚類脱货、降維岛都、模型選擇、預(yù)處理振峻。
分類:識(shí)別某個(gè)對(duì)象屬于哪個(gè)類別臼疫,常用的算法有:SVM(支持向量機(jī))、nearest neighbors(最近鄰)扣孟、random forest(隨機(jī)森林)烫堤,常見的應(yīng)用有:垃圾郵件識(shí)別、圖像識(shí)別。
回歸:預(yù)測(cè)與對(duì)象相關(guān)聯(lián)的連續(xù)值屬性鸽斟,常見的算法有:SVR(支持向量機(jī))拔创、 ridge regression(嶺回歸)、Lasso湾盗,常見的應(yīng)用有:藥物反應(yīng)伏蚊,預(yù)測(cè)股價(jià)。
聚類:將相似對(duì)象自動(dòng)分組格粪,常用的算法有:k-Means、 spectral clustering氛改、mean-shift帐萎,常見的應(yīng)用有:客戶細(xì)分,分組實(shí)驗(yàn)結(jié)果胜卤。
降維:減少要考慮的隨機(jī)變量的數(shù)量疆导,常見的算法有:PCA(主成分分析)、feature selection(特征選擇)葛躏、non-negative matrix factorization(非負(fù)矩陣分解)澈段,常見的應(yīng)用有:可視化,提高效率舰攒。
模型選擇:比較败富,驗(yàn)證,選擇參數(shù)和模型摩窃,常用的模塊有:grid search(網(wǎng)格搜索)兽叮、cross validation(交叉驗(yàn)證)、 metrics(度量)猾愿。它的目標(biāo)是通過參數(shù)調(diào)整提高精度鹦聪。
預(yù)處理:特征提取和歸一化,常用的模塊有:preprocessing蒂秘,feature extraction泽本,常見的應(yīng)用有:把輸入數(shù)據(jù)(如文本)轉(zhuǎn)換為機(jī)器學(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的最后一個(gè)版本段化。Scikit-learn 0.21將需要Python 3.5或更高版本嘁捷。
如果你已經(jīng)安裝了numpy和scipy,那么安裝scikit-learn的最簡(jiǎn)單方法就是使用 pip
或者canda
pip install -U scikit-learn
conda install scikit-learn
如果你尚未安裝NumPy或SciPy显熏,你也可以使用conda或pip安裝它們雄嚣。使用pip時(shí),請(qǐng)確保使用binary wheels,并且不會(huì)從源頭重新編譯NumPy和SciPy缓升,這可能在使用特定配置的操作系統(tǒng)和硬件(例如Raspberry Pi上的Linux)時(shí)發(fā)生鼓鲁。從源代碼構(gòu)建numpy和scipy可能很復(fù)雜(特別是在Windows上),需要仔細(xì)配置以確保它們與線性代數(shù)例程的優(yōu)化實(shí)現(xiàn)相關(guān)聯(lián)港谊。為了方便骇吭,我們可以使用如下所述的第三方發(fā)行版本。
發(fā)行版本
如果你還沒有numpy和scipy的python安裝歧寺,我們建議你通過包管理器或通過python bundle安裝燥狰。它們帶有numpy,scipy斜筐,scikit-learn龙致,matplotlib以及許多其他有用的科學(xué)和數(shù)據(jù)處理庫(kù)。
可用選項(xiàng)包括:Canopy和Anaconda適用于所有支持的平臺(tái)
除了用于Windows顷链,Mac OSX和Linux的大量科學(xué)python庫(kù)之外目代,Canopy和Anaconda都提供了最新版本的scikit-learn。
Anaconda提供scikit-learn作為其免費(fèi)發(fā)行的一部分嗤练。
【注意】pip和conda命令不要混用i涣恕!煞抬!
要升級(jí)或卸載scikit-learn安裝了python或者conda
你不應(yīng)該使用PIP命令霜大。
升級(jí)scikit-learn
:conda update scikit-learn
卸載scikit-learn
:conda remove scikit-learn
使用pip install -U scikit-learn
安裝或者使用pip uninstall scikit-learn
卸載可能都沒有辦法更改有conda命令安裝的sklearn。
算法選擇
sklearn 實(shí)現(xiàn)了很多算法此疹,面對(duì)這么多的算法僧诚,如何去選擇呢?其實(shí)選擇的主要考慮的就是需要解決的問題以及數(shù)據(jù)量的大小蝗碎。sklearn官方提供了一個(gè)選擇算法的引導(dǎo)圖湖笨。
https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html
這里提供翻譯好的中文版本,供大家參考: