scikit-learn的簡介
Scikit-learn項目最早由資料科學家 David Cournapeau 在 2007 年發起,需要NumPy和SciPy等其他包的支援,是Python語言中專門針對機器學習應用而發展起來的一款開源架構。
Scikit-learn依托于Numpy、Scipy等幾種工具包,封裝大量經典以及最新的機器學習模型。該接口最早由David Cournapeau在2007年Google夏季代碼節中提出并啟動。後來作為Matthieu Brucher博士工作的一部分得以延續和完善。現在已經是相對成熟的機器學習開源項目。近十年來,有超過20位計算機專家參與其代碼的更新和維護工作。作為一款用于機器學習和實踐的Python第隻方開源程式庫,Scikit-learn因其出色的接口設計和高效的學習能力,尤其受ML愛好者的歡迎。
和其他衆多的開源項目一樣,Scikit-learn目前主要由社群成員自發進行維護。可能是由于維護成本的限制,Scikit-learn相比其他項目要顯得更為保守。這主要展現在兩個方面:一是Scikit-learn從來不做除機器學習領域之外的其他擴充,二是Scikit-learn從來不采用未經廣泛驗證的算法。
Scikit-learn的基本功能主要被分為六大部分:
分類,回歸,聚類,資料降維,模型選擇和資料預處理。
1、分類:是指識别給定對象的所屬類别,屬于監督學習的範疇,最常見的應用場景包括垃圾郵件檢測和圖像識别等。目前Scikit-learn已經實作的算法包括:支援向量機(SVM),最近鄰,邏輯回歸,随機森林,決策樹以及多層感覺器(MLP)神經網絡等等。 需要指出的是,由于Scikit-learn本身不支援深度學習,也不支援GPU加速,是以這裡對于MLP的實作并不适合于處理大規模問題。有相關需求的讀者可以檢視同樣對Python有良好支援的Keras和Theano等架構。
2、回歸:是指預測與給定對象相關聯的連續值屬性,最常見的應用場景包括預測藥物反應和預測股票價格等。目前Scikit-learn已經實作的算法包括:支援向量回歸(SVR),脊回歸,Lasso回歸,彈性網絡(Elastic Net),最小角回歸(LARS ),貝葉斯回歸,以及各種不同的魯棒回歸算法等。可以看到,這裡實作的回歸算法幾乎涵蓋了所有開發者的需求範圍,而且更重要的是,Scikit-learn還針對每種算法都提供了簡單明了的用例參考。
3、聚類:是指自動識别具有相似屬性的給定對象,并将其分組為集合,屬于無監督學習的範疇,最常見的應用場景包括顧客細分和試驗結果分組。目前Scikit-learn已經實作的算法包括:K-均值聚類,譜聚類,均值偏移,分層聚類,DBSCAN聚類等。
4、資料降維:是指使用主成分分析(PCA)、非負矩陣分解(NMF)或特征選擇等降維技術來減少要考慮的随機變量的個數,其主要應用場景包括可視化處理和效率提升。
5、模型選擇
是指對于給定參數和模型的比較、驗證和選擇,其主要目的是通過參數調整來提升精度。目前Scikit-learn實作的子產品包括:格點搜尋,交叉驗證和各種針對預測誤差評估的度量函數。
6、資料預處理:是指資料的特征提取和歸一化,是機器學習過程中的第一個也是最重要的一個環節。這裡歸一化是指将輸入資料轉換為具有零均值和機關權方差的新變量,但因為大多數時候都做不到精确等于零,是以會設定一個可接受的範圍,一般都要求落在0-1之間。而特征提取是指将文本或圖像資料轉換為可用于機器學習的數字變量。 需要特别注意的是,這裡的特征提取與上文在資料降維中提到的特征選擇非常不同。特征選擇是指通過去除不變、協變或其他統計上不重要的特征量來改進機器學習的一種方法。 總結來說,Scikit-learn實作了一整套用于資料降維,模型選擇,特征提取和歸一化的完整算法/子產品,雖然缺少按步驟操作的參考教程,但Scikit-learn針對每個算法和子產品都提供了豐富的參考樣例和詳細的說明文檔。
scikit-learn的安裝
pip install -U scikit-learn

成功安裝,哈哈!
scikit-learn的使用方法
scikit-learn algorithm cheat-sheet
選擇正确的估計量:解決機器學習問題的最困難的部分通常是為工作找到正确的估計量。不同的估計量更适合于不同類型的資料和不同的問題。下面的流程圖旨在為使用者提供一個關于如何處理問題的粗略指南,這些問題涉及到哪些評估人員要嘗試您的資料。點選下表中的任何估算器檢視其文檔。
位址:
https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html