加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python-3.x – fit_intercept参数如何影响线性回归与scikit lear

发布时间:2020-12-20 13:19:59 所属栏目:Python 来源:网络整理
导读:我正在尝试拟合线性模型,并且我的数据集被归一化,其中每个特征除以最大可能值.所以这些值的范围是0-1.现在我从我以前的帖子中了解到 Linear Regression vs Closed form Ordinary least squares in Python线性回归在scikit中,当fit_intercept参数设置为false
我正在尝试拟合线性模型,并且我的数据集被归一化,其中每个特征除以最大可能值.所以这些值的范围是0-1.现在我从我以前的帖子中了解到 Linear Regression vs Closed form Ordinary least squares in Python线性回归在scikit中,当fit_intercept参数设置为false时,产生与闭合形式OLS相同的结果.我不太了解fit_intercept的工作原理.

对于任何线性问题,如果y是预测值.

y(w,x) = w_0 + w_1 x_1 + ... + w_p x_p

在整个模块中,向量w =(w_1,…,w_p)表示为coef_,w_0表示为intercept_

在闭合形式OLS中,我们还有w_0的偏差值,我们在计算点积之前引入向量X_0 = [1 … 1]并使用矩阵乘法和逆求解.

w = np.dot(X.T,X) 
w1 = np.dot(np.linalg.pinv(w),np.dot(X.T,Y))

当fit_intercept为True时,如果y是预测值,则scikit-learn线性回归可以解决问题.

y(w,x)= w_0 w_1 x_1 … w_p x_p b其中b是截距项.

如何在模型中使用fit_intercept以及何时将其设置为True / False.我试图查看源代码,似乎系数按一定比例进行了规范化.

if self.fit_intercept:
    self.coef_ = self.coef_ / X_scale
    self.intercept_ = y_offset - np.dot(X_offset,self.coef_.T)
else:
    self.intercept_ = 0

这种缩放究竟做了什么.我想解释两种方法中的系数(线性回归,封闭形式OLS),但由于只设置fit_intercept True / False给出了线性回归的不同结果,我不能完全决定它们背后的直觉.哪一个更好,为什么?

解决方法

在没有深入到数学公式的细节的情况下,当拟合截距设置为假时,估计器故意将截距设置为零,这反过来影响其他回归量,因为误差减少的“责任”落在这些因素上.结果,如果它对截距项的存在敏感,则在任何一种情况下结果都可能非常不同.缩放移动原点,从而允许相同的闭环解决方案同时拦截和无拦截模型.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读