1. 程式人生 > >sklearn scikit-learn學習筆記(持續更新)

sklearn scikit-learn學習筆記(持續更新)

在最近的課題中,發現了機器學習的神器,sklearn,寫一些簡單的分類器對資料進行分類簡直不要舒服

本部落格是我在學習官方文件的時候的一些個人的筆記,由於我只關注一些自己見過的方法的呼叫,所以本文僅供參考,建議英語過關的還是要自己看官方文件

http://scikit-learn.org/stable/supervised_learning.html#supervised-learning

1.1.1普通最小二乘法(線性迴歸)

此方法學過機器學習課程的都應該很熟悉,入門必備的演算法,基本此項就是對所有的資料集最小化一個引數

                                                        

sklearn使用方法為:

>>> from sklearn import linear_model
>>> reg = linear_model.LinearRegression()
>>> reg.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
>>> reg.coef_                #輸出迴歸係數
array([ 0.5,  0.5])

例子為:

http://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py

1.1.2 Ridge Regression

嶺迴歸通過對係數大小施加懲罰來解決普通最小二乘法的一些問題。 嶺係數最小化懲罰殘差平方和。區別就在損失函式上

                                                

>>> from sklearn import linear_model
>>> reg = linear_model.Ridge (alpha = .5)
>>> reg.fit ([[0, 0], [0, 0], [1, 1]], [0, .1, 1]) 
Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,
      normalize=False, random_state=None, solver='auto', tol=0.001)
>>> reg.coef_
array([ 0.34545455,  0.34545455])
>>> reg.intercept_       #輸出迴歸的截距b
0.13636...

1.1.2.2 Ridge Complexity:RidgeCV

用交叉驗證得到一個合適的alpha

>>> from sklearn import linear_model
>>> reg = linear_model.RidgeCV(alphas=[0.1, 1.0, 10.0])
>>> reg.fit([[0, 0], [0, 0], [1, 1]], [0, .1, 1])       
RidgeCV(alphas=[0.1, 1.0, 10.0], cv=None, fit_intercept=True, scoring=None,
    normalize=False)
>>> reg.alpha_                                      
0.1

1.1.10:Bayesian Regression