API:
sklearn.linear_model.LinearRegression()
回归系数:LnearRegression.coef_
案例一
form sklearn.linear_model import LinearRegression
构造数据
x = [[80, 86],
[82, 80],
[85, 78],
[90, 90],
[86, 82],
[82, 90],
[78, 80],
[92, 94]]
y = [84.2, 80.6, 80.1, 90, 83.2, 87.6, 79.4, 93.4]
模型训练
estimator=LinearRegression()
estimator.fit(x,y)
//knn estimator.fit(x.train,y_train)
//网格搜索交叉验证
//gridsearchcv(estimator,prarm_grid=param_dict,cv=3)
print(“回归系数:”,estimator.coef)
//输出预测结果
estimator.predict([[100,80]])
线性回归的损失和优化
2 优化算法
如何去求模型当中的W,使得损失最⼩?
正规⽅程
什么是正规⽅程
一般不用,因为涉及到了矩阵的逆
API:
梯度下降(Gradient Descent)
ai+1=ai- b*倒数
API:
sklearn.linear_model.SGDRegressoror(loss=”squared_loss”, fit_intercept=True, learning_rate =’invscaling’,
eta0=0.01)
参数:
loss:损失类型
loss=”squared_loss”: 普通最⼩⼆乘法
fit_intercept:是否计算偏置
learning_rate : string, optional
学习率填充
‘constant’: eta = eta0
‘optimal’: eta = 1.0 / (alpha * (t + t0)) [default]
‘invscaling’: eta = eta0 / pow(t, power_t)
power_t=0.25:存在⽗类当中
对于⼀个常数值的学习率来说,可以使⽤learning_rate=’constant’ ,并使⽤eta0来指定学习率。
属性:
SGDRegressor.coef_:回归系数
SGDRegressor.intercept_:偏置
案例:波⼠顿房价预测
正规方程
from sklearn.dadesets import load_boston
form sklearn.model_selection import train_test_split
from sklearn.preprocessing import standardScaler
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_square_error
1、获取数据
2、数据基本处理
2、1分割数据
3、特征工程
4、机器学习
5、模型评估
def linear_model():
boston=load_boston()
x_train,x_test,y_train,y_test=
train_test_split(boston.data,boston.target,test_size=0.2)
transfer=standardScaler()
x_train=transfer.fit_transform(x_train)
x_test=transfer.fit_transform(x_test)
estimator=LinearRegression()/SGDRegressor(max_iter=1000)
// 4.机器学习-线性回归(岭回归)
//estimator = Ridge(alpha=1)
estimator.fit(x_train,y_train)
y_pre=estimator.predict(x_test)
ret=mean_square_error(y_test,y_pre)
print("MSE:",ret)
正则化
岭回归
sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True,solver=”auto”, normalize=False)
具有l2正则化的线性回归
alpha:正则化⼒度,也叫 λ
λ取值:0~1 1~10
solver:会根据数据⾃动选择优化⽅法
sag:如果数据集、特征都⽐较⼤,选择该随机梯度下降优化
normalize:数据是否进⾏标准化
normalize=False:可以在fit之前调⽤preprocessing.StandardScaler标准化数据
Ridge.coef_:回归权重
Ridge.intercept_:回归偏置