3、linreg

import mglearn
X,y = mglearn.datasets.make_wave(n_samples=60)


from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=42)

 1、线性回归

from sklearn.linear_model import LinearRegression
lr = LinearRegression()

lr.fit(X_train,y_train)
'''
Out[8]: 
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,
         normalize=False)'''

print("权值w:",lr.coef_)
print("偏置b:",lr.intercept_)
'''
权值w: [ 0.39390555]
偏置b: -0.0318043430268
'''
print(lr.score(X_train,y_train))
#0.670089031508

print(lr.score(X_test,y_test))
#0.659336859686

2、 岭回归

from sklearn.linear_model import Ridge

ridge = Ridge(alpha=0.1)
ridge.fit(X_train,y_train)
'''
Out[18]: 
Ridge(alpha=0.1, copy_X=True, fit_intercept=True, max_iter=None,
   normalize=False, random_state=None, solver='auto', tol=0.001)
'''
print(ridge.score(X_train,y_train))
#0.670059934224
print(ridge.score(X_test,y_test))
#0.657794686363


 3、Lasso回归


from sklearn.linear_model import Lasso

Lasso = Lasso(alpha=0.01,max_iter=10000)

Lasso.fit(X_train,y_train)
'''
Out[22]: 
Lasso(alpha=0.01, copy_X=True, fit_intercept=True, max_iter=10000,
   normalize=False, positive=False, precompute=False, random_state=None,
   selection='cyclic', tol=0.0001, warm_start=False)
'''
print(Lasso.score(X_train,y_train))
0.670050551435

print(Lasso.score(X_test,y_test))
0.657560169983

首选岭回归,如果特征很多,选lasso

猜你喜欢

转载自blog.csdn.net/TU_JCN/article/details/86515646
3
3-3