权重 w也可以写成矩阵的形式:
W=[w0,w1,w2,...,wn]
写成一种简单明了的方式:
Y=XWT
LinearRegression的损失函数是可以一定程度上衡量模型的好坏的一个算法,在回归问题中比较常用的损失是均方误差(MSE):

为了减少损失函数的值,需要一种优化器:梯度下降算法。假设我们的样本只有一个特征,且偏置项为0,那么我们的损失函数就可以写为:

- Lasso回归
Lasso是在最小二乘回归的基础上加上L1正则表达式得到,L1正则表达式同样可以防止模型过拟合。
sklearn对线性回归方法已经做好了封装,调用起来非常方便,如下:
from sklearn.linear_model import LinearRegression #引入LinearRegression模型
#from sklearn.linear_model import Lasso
#import statsmodels.api as sm
lr = LinearRegression()
lr.fit(x_train,y_train) #用LinearRegression回归模型拟合训练集
# las = Lasso(alpha=0.01)
#las.fit(x_train,y_train) #用Lasso回归模型拟合训练集
#model_ols=sm.OLS(y,x).fit() #最小二乘拟合
print("train=",lr.score(x_train,y_train)) #对回归效果进行打分,lr.score方法及计算R的平方
OUTPUT:
train= 0.6523736250935579
对拟合的相关系数(coef)进行输出:
coeff_df=pd.DataFrame(lr.coef_,x.columns,columns=['Coefficient']) #coef_即W1,...,Wn;intercept_即W0
coeff_df
OUTPUT:

用拟合的回归模型对测试集进行预测:
predictions=lr.predict(x_test)
predictions.reshape(-1)
OUTPUT:
