请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于sklearn中PolynomialFeatures类

https://img1.sycdn.imooc.com//szimg/5b694a1a000147a508280349.jpg

这里升维后加的一列1 是线性回归中X和X_b之间差的那一列1吗,可是加这一列1的操作不是已经封装在类里了吗,这样不就重复了

正在回答

1回答

liuyubobobo 2018-08-07 18:26:42


赞问题!


答案是:是,也不是。


首先,说不是,是因为他们语意不同。

在线性回归中,由于需要考虑常数项的系数,所以我们加了一列1,让X变成了X_b,这样,我们才能考虑常数项系数;

但是,在这里,这一列1是创建多项式特征的过程中添加的,是数据预处理的结果。它的本质是:我们需要所有degree<=d的特征,其中,也包括d=0的特征。当d=0时x^0=1。这是一列新的特征,只不过,这列特征和x的大小没有关系,恒等于1。


说他是,是因为,这样的一个特征矩阵,在实际运算的时候,这一列1确实可以直接当做X_b来使用。在运算结果上是没差的。


好消息是,对于这样的X,即使我们再扩充一列1,形成的X_b里有两列1,最终的运算结果也是一样的。在我们计算损失函数中,这两列数据将共同承担常数项的任务,不影响最终让损失函数最低时,其他特征的系数值:)

1 回复 有任何疑惑可以回复我~
  • 提问者 你鸡 #1
    好滴谢谢老师了
    回复 有任何疑惑可以回复我~ 2018-08-07 19:06:01
  • 老师,那这样出来的结果,这一列的结果不就是常数项的值了吗?为什么视频里结果是0而用intercept这个属性才能显示出来常数项的值
    回复 有任何疑惑可以回复我~ 2018-08-31 21:15:59
  • 在sklearn的LinearRegression的封装中,coef_指特征的系数,你可以理解成y是怎样随着这个特征变化的。由于这个特征根本不会变,所以y也不会变,相应得到的就是0:)
    回复 有任何疑惑可以回复我~ 2018-09-01 03:35:13
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信