scikit-learn安裝入門 開源機器學(xué)習(xí)工具scikit-learn入門
Scikit-Learn是基于python的機器學(xué)習(xí)模塊,基于BSD開源許可證纳令。這個項目最早由DavidCournapeau 在2007 年發(fā)起的咐低,目前也是由社區(qū)自愿者進行維護倔撞。
Scikit-Learn的官方網(wǎng)站是http://scikit-learn.org/stable/,在上面可以找到相關(guān)的Scikit-Learn的資源,模塊下載憔购,文檔焦匈,例程等等。
Scikit-Learn的安裝需要numpy辕录,scipy睦霎,matplotlib等模塊,windows用戶可以到http://www.lfd.uci.edu/~gohlke/pythonlibs直接下載編譯好的安裝包以及依賴走诞,也可以到這個網(wǎng)站下載http://sourceforge.jp/projects/sfnet_scikit-learn/副女。
scikit-learn的基本功能主要被分為六個部分,分類蚣旱,回歸碑幅,聚類,數(shù)據(jù)降維塞绿,模型選擇沟涨,數(shù)據(jù)預(yù)處理,具體可以參考官方網(wǎng)站上的文檔异吻。
對于具體的機器學(xué)習(xí)問題拷窜,通常可以分為三個步驟涧黄,數(shù)據(jù)準(zhǔn)備與預(yù)處理篮昧,模型選擇與訓(xùn)練,模型驗證與參數(shù)調(diào)優(yōu)笋妥,這里以邏輯回歸模型為例說明懊昨。
scikit-learn支持多種格式的數(shù)據(jù),包括經(jīng)典的iris數(shù)據(jù)春宣,LibSVM格式數(shù)據(jù)等等酵颁。為了方便起見,推薦使用LibSVM格式的數(shù)據(jù)月帝,詳細(xì)見LibSVM的官網(wǎng)躏惋。
from sklearn.datasets importload_svmlight_file,導(dǎo)入這個模塊就可以加載LibSVM模塊的數(shù)據(jù)嚷辅,
t_X,t_y=load_svmlight_file("filename")
機器學(xué)習(xí)模型也要導(dǎo)入相應(yīng)的模塊簿姨,邏輯回歸模型在下面的模塊中。
from sklearn.linear_modelimport LogisticRegression
regressionFunc =LogisticRegression(C=10, penalty='l2', tol=0.0001)
train_sco=regressionFunc.fit(train_X,train_y).score(train_X,train_y)
test_sco=regressionFunc.score(test_X,test_y)
就可以完成模型的訓(xùn)練和測試了。
為了選擇更好地模型可以進行交叉實驗扁位,或者使用貪心算法進行參數(shù)調(diào)優(yōu)准潭。
導(dǎo)入如下模塊就可以,
CV:
from sklearn importcross_validation
X_train_m, X_test_m,y_train_m, y_test_m = cross_validation.train_test_split(t_X,t_y, test_size=0.5,random_state=seed_i)
regressionFunc_2.fit(X_train_m,y_train_m)
sco=regressionFunc_2.score(X_test_m,y_test_m, sample_weight=None)
GridSearch:
from sklearn.grid_searchimport GridSearchCV
tuned_parameters =[{'penalty': ['l1'], 'tol': [1e-3, 1e-4],
'C': [1, 10, 100, 1000]},
{'penalty': ['l2'], 'tol':[1e-3, 1e-4],
'C': [1, 10, 100, 1000]}]
clf =GridSearchCV(LogisticRegression(), tuned_parameters, cv=5, scoring=['precision','recall'])
print(clf.best_estimator_)
當(dāng)然可以利用matplotlib繪制學(xué)習(xí)曲線域仇,需要導(dǎo)入相應(yīng)模塊如下:
from sklearn.learning_curveimport learning_curve,validation_curve
核心代碼如下刑然,具體參見Scikit-Learn的官方文檔:
rain_sizes, train_scores,test_scores = learning_curve(
estimator, X, y, cv=cv, n_jobs=n_jobs,train_sizes=train_sizes)
train_scores, test_scores =validation_curve(
estimator, X, y, param_name,param_range,
cv, scoring, n_jobs)
當(dāng)然,Scikit-Learn中的機器學(xué)習(xí)模型非常豐富暇务,包括SVM泼掠,決策樹,GBDT垦细,KNN等等武鲁,可以根據(jù)問題的類型選擇合適的模型,更多內(nèi)容請參閱官方文檔蝠检。
Machine Learning framework in Python? ?
user_guide_0.16.1.pdf(日期: 2015-04-16, 大小: 55.5 MB)
user_guide_0.16.0.pdf(日期: 2015-04-16, 大小: 55.5 MB)
scikit-learn-0.16.1.win32-py3.4.exe(日期: 2015-04-15, 大小: 2.9 MB)
scikit-learn-0.16.1.win-amd64-py2.7.exe(日期: 2015-04-15, 大小: 3.2 MB)
scikit_learn-0.16.1-cp27-none-win32.whl(日期: 2015-04-15, 大小: 2.8 MB)