from sklearn.linear_model import LinearRegression lr=LinearRegression() lr.fit(train_x,train_y) print lr.intercept_ print lr.coef_
from sklearn.linear_model import Ridge from sklearn.model_selection import cross_val_score alphas=np.logspace(-3,2,50) test_scores =[] for alpha in alphas: clf=Ridge(alpha) test_score=np.sqrt(-cross_val_score(clf,X_train,Y_train,cv=10,scoring='neg_mean_squared_error')) test_scores.append(np.mean(test_score)) plt.plot(alphas,test_scores)
RidgeCV類的損失函數和損失函數的優化方法與Ridge類徹底相同,區別在於驗證方法。html
from sklearn.linear_model import RidgeCV # 在初始化RidgeCV類時, 提供一組備選的α值, RidgeCV類會幫咱們選擇一個合適的α值. ridgecv = RidgeCV(alphas=[0.01, 0.1, 0.5, 1, 3, 5, 7, 10, 20, 100], cv=5) # 擬合訓練集 ridgecv.fit(train_X, train_Y) # 打印最優的α值 print "最優的alpha值: ", ridgecv.alpha_ # 打印模型的係數 print ridgecv.intercept_ print ridgecv.coef_
Lasso迴歸的損失函數的優化方法經常使用的有兩種,分別是座標軸降低法和最小角迴歸法。Lasso類採用的是座標軸降低法,後面講到的LassoLars類採用的是最小角迴歸法python
from sklearn.linear_model import LassoCV # 在初始化LassoCV類時, 提供一組備選的α值, LassoCV類會幫咱們選擇一個合適的α值. lassocv = LassoCV(alphas=[0.01, 0.1, 0.5, 1, 3, 5, 7, 10, 20, 100], cv=5) # 擬合訓練集 lassocv.fit(train_X, train_Y.values.ravel()) # 打印最優的α值 print "最優的alpha值: ", lassocv.alpha_ # 打印模型的係數 print lassocv.intercept_ print lassocv.coef_
當咱們擬合的是一個曲線的時候咱們就不能只考慮線性擬合了,咱們能夠考慮多項式擬合,經過加入高次的特徵來來獲得總的特徵樣本,而後在進行線性的擬合git
#多項式擬合 from sklearn.preprocessing import PolynomialFeatures poly_features = PolynomialFeatures(degree=5, include_bias=False)#其中的degree就是指的最高次項的個數 X_poly = poly_features.fit_transform(X) print(X_poly.shape) lin_reg = LinearRegression() lin_reg.fit(X_poly, y) print(lin_reg.intercept_, lin_reg.coef_)
邏輯迴歸之因此被分爲線性迴歸的一種,只由於其本質也是線性迴歸,只不過獲得的線性相加求和以後加上了sigmod函數將其二值化算法
from sklearn.linear_model import LogiticRegression lr==Logiticregression() lr.fit(x,y)