scikit-learn 入门
簡介:
scikit-learn是一個基于NumPy、SciPy、Matplotlib的開源機器學習工具包。採用Python語言編寫。主要涵蓋分類、
回歸和聚類等算法,比如knn、SVM、邏輯回歸、樸素貝葉斯、隨機森林、k-means等等諸多算法,官網上代碼和文檔
都非常不錯,對于機器學習開發人員來說。是一個使用方便而強大的工具,節省不少開發時間。
scikit-learn官網指南:http://scikit-learn.org/stable/user_guide.html
sklearn 快速入門的官方文檔在這里。這個文檔主要描述機器學習的概念,以及如何加載數據,訓練模型,保存模型。
數據
sklearn 中的數據一般存放為二維數組,形狀為 [n_samples, n_feartures]。比如著名的 iris 數據集(鳶尾花)包含了三種類別的花(target),共 150 組數據(samples),每組數據由 4 個特征組成,具體來說就是:萼片的長度、萼片的寬度、花瓣的長度、花瓣的寬度。那么,iris 數據集的 data 就由 150*4 的二維數組組成。
sklearn 提供了很多數據集,一類比較小,直接打包在庫中,可以通過 datasets.load_ + Tab 來查看,另一類比較大,需要下載,可以通過 datasets.fetch_ + Tab 查看,下載的目錄可以通過sklearn.datasets.get_data_home()查看。
更詳細的信息請參考 notebook 中的 02_sklearn_data.ipynb 文件。
接口
創建一個機器學習的模型很簡單:
from sklearn.linear_model import LinearRegression model = LinearRegression() print model?
所有模型提供的接口有:
- model.fit(): 實際上就是訓練,對于監督模型來說是 fit(X, y),對于非監督模型是 fit(X)。
監督模型提供:
- model.predict(X_new): 判別新樣本
- model.predict_proba(X_new): 某些模型可以輸出概率,比如 LR,上一個輸出的就是概率最大的 target
- model.score(): 得分越高,fit 越好
非監督模型提供:
- model.transform(): 從數據中學到新的“基空間”,(例如聚類,稀疏特征?)。
- model.fit_transform(): 從數據中學到新的基并將這個數據按照這組“基”進行轉換。
?
??? 下面這個圖展示了這些接口在機器學習模型中的位置:
使用scikit-learn中的算法包kNN(k近鄰)、SVM(支持向量機)、NB(樸素貝葉斯)來解決問題,解決問題的關鍵步驟有兩個:
1、處理數據。2、調用算法
?
參考:http://www.cnblogs.com/daniel-D/
?
推薦博客:http://blog.csdn.net/u012162613/article/details/41929171
總結
以上是生活随笔為你收集整理的scikit-learn 入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python selenium webd
- 下一篇: Linux中网络通信中 使用的结构体