首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scikit学习PolynomialFeatures - include_bias选项的用途是什么?

Scikit学习PolynomialFeatures - include_bias选项的用途是什么?
EN

Stack Overflow用户
提问于 2020-01-14 00:08:25
回答 1查看 3.8K关注 0票数 6

在scikit-learn的PolynomialFeatures预处理程序中,include_bias有一个选项。这实际上只是在dataframe中添加了一个列。我想知道这是什么意思。当然,您可以将其设置为False。但是从理论上讲,是否有一列列以及生成的多项式特征对回归有何影响。

这是文档中的解释,但我似乎无法从中得到任何有用的信息,比如为什么应该使用它。

include_bias :布尔

如果是真(默认),则包含一个偏置列,即所有多项式幂为零的特征(即一列多项式-在线性模型中充当截距项)。

EN

回答 1

Stack Overflow用户

发布于 2020-02-16 22:27:09

假设您想要执行以下回归:

代码语言:javascript
复制
y ~ a + b x + c x^2

其中x是一个通用示例。最优系数a,b,c是用简单的矩阵演算计算出来的。首先,让我们用X = [1 | X | X^2]表示一个N行的矩阵,其中N是样本数。第一列是1s列,第二列是值x_i列,对于所有样本i,第三列是值x_i^2列,对于所有样本i,让我们用B表示以下列向量B=[a b c]^T,如果Y是所有样本I的N个目标值的列向量,我们可以将回归写成

代码语言:javascript
复制
y ~ X B

这个方程的i-th行是y_i ~ [1 x_i x^2] [a b c]^t = a + b x_i + c x_i^2

训练回归的目标是找到B=[a b c],以便X B尽可能接近y

如果不添加1的列,则假设a=0是先验的,这可能是不正确的。

实际上,当您编写Python代码并将PolynomialFeaturessklearn.linear_model.LinearRegression一起使用时,后者在默认情况下会注意添加1s列(因为在LinearRegression中,fit_intercept参数默认为True ),因此不需要在PolynomialFeatures中也添加它。因此,在PolynomialFeatures中,人们通常保留include_bias=False

如果使用statsmodels.OLS而不是LinearRegression,情况就不一样了。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59725907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档