采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
这里升维后加的一列1 是线性回归中X和X_b之间差的那一列1吗,可是加这一列1的操作不是已经封装在类里了吗,这样不就重复了
赞问题!
答案是:是,也不是。
首先,说不是,是因为他们语意不同。
在线性回归中,由于需要考虑常数项的系数,所以我们加了一列1,让X变成了X_b,这样,我们才能考虑常数项系数;
但是,在这里,这一列1是创建多项式特征的过程中添加的,是数据预处理的结果。它的本质是:我们需要所有degree<=d的特征,其中,也包括d=0的特征。当d=0时x^0=1。这是一列新的特征,只不过,这列特征和x的大小没有关系,恒等于1。
说他是,是因为,这样的一个特征矩阵,在实际运算的时候,这一列1确实可以直接当做X_b来使用。在运算结果上是没差的。
好消息是,对于这样的X,即使我们再扩充一列1,形成的X_b里有两列1,最终的运算结果也是一样的。在我们计算损失函数中,这两列数据将共同承担常数项的任务,不影响最终让损失函数最低时,其他特征的系数值:)
好滴谢谢老师了
老师,那这样出来的结果,这一列的结果不就是常数项的值了吗?为什么视频里结果是0而用intercept这个属性才能显示出来常数项的值
在sklearn的LinearRegression的封装中,coef_指特征的系数,你可以理解成y是怎样随着这个特征变化的。由于这个特征根本不会变,所以y也不会变,相应得到的就是0:)
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.4k 19
3.4k 17
2.9k 15
1.6k 15
1.4k 14