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