失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 如何推导最小二乘法 求解多元线性回归参数?

如何推导最小二乘法 求解多元线性回归参数?

时间:2022-01-13 14:15:01

相关推荐

如何推导最小二乘法 求解多元线性回归参数?

前言:本文主要内容:

1. 最小二乘法损失函数求解推导;

2. sklearn中linear_model.LinearRegression参数介绍+案例

最小二乘法损失函数求解推导

最小二乘法的思路:对损失函数求导,令其为0,求得损失函数最小值时的参数,但前提条件:导数为凸函数。

多元线性回归参数求解是一个矩阵求导的过程,所以需要知道一些矩阵运算、求导运算的公式:

然后对多元线性回归的损失函数进行求导,公式如下:(其中w、y、X都是矩阵)

令其为0:

其中倒数最后一步需要左乘(X^TX)^-1。

补充点:

1. 逆矩阵存在的充分必要条件:特征矩阵不能存在多重共线性。

2. 因为X^TX随着特征、数据量的增加,计算量很大,不能直接使用numpy计算,需要使用奇异值分解来计算。

奇异值分解在PCA中也涉及使用。

在PCA中,为了找到新的特征空间,需要使用奇异值分解来计算。 在sklearn.decomposition.PCA中,使用参数svd_solver来控制奇异值计算方法,可以使用full(精准)/arpack(截断)/randomized(随机)/auto。

3. 最小二乘法求解线性回归属于“无偏估计”,即要求标签必须是正态分布,所以需要对y进行正态处理,可以使用quantileTransformer或者PowerTransformer。不过因为机器学习为“后验方式”,如果不对y进行处理的效果好,那么也不必正态处理。

sklearn中linear_model.LinearRegression参数介绍+案例:加利福尼亚房价数据集

fit_intercept:是否有截距项,默认True;normalize:对X进行标准化,默认True;copy_X:是否复制一份,以保证不在原始数据上操作,默认True;n_jobs:设定运算性能,填整数,默认None;model.coef_ :查看系数,即wmodel.intercept_ :查看截距项

from sklearn.datasets import fetch_california_housing as fchhousevalue=fch()X=pd.DataFrame(housevalue.data,columns=housevalue.feature_names)X.head()y=housevalue.targetfrom sklearn.model_selection import train_test_splitX_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=9)from sklearn.linear_model import LinearRegressionmodel=LinearRegression().fit(X_train,y_train)y_hat=model.predict(X_test)y_hatmodel.coef_ # 返回模型的参数[*zip(X_train.columns,model.coef_)]model.intercept_ # 返回模型的截距项

如果觉得《如何推导最小二乘法 求解多元线性回归参数?》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。