用到sklearn库中的linear_model模块:①Linear.Regression()类②Ridge()类
①Linear.Regression():通过求实际观测值与预测值的差的平方的最小值求得参数w;
数学公式:(即最小二乘法)
from sklearn import linear_model X=[[0,0],[1,2],[2,2],[4,5],[5,100]] y=[0,1,2,4,5] clf=linear_model.LinearRegression() clf.fit(X,y) print(clf.coef_) print(clf.intercept_) print(clf.predict([[3,3]])) print(clf.score(X,y)) print(clf.get_params())
[ 1.00000000e+00 -1.39316639e-17] -4.4408920985e-16 [ 3.] 1.0 {'copy_X': True, 'fit_intercept': True, 'n_jobs': 1, 'normalize': False}
②Ridge()类:改良版最小二乘法,增加系数的平方和与调整参数的乘积
数学公式:![]()
clf=linear_model.RidgeCV(alphas=[0.1,2,10]) clf.fit(X,y) print(clf.coef_) print(clf.intercept_) print(clf.predict([[3,3]])) print(clf.score(X,y)) print(clf.get_params())[ 9.87760125e-01 4.22654471e-04] 0.0201618331975 [ 2.98471017] 0.999929709988 {'alphas': [0.1, 2, 10], 'cv': None, 'fit_intercept': True, 'gcv_mode': None, 'normalize': False, 'scoring': None, 'store_cv_values': False}