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)