老师见谅,问题好像有点多了。。。。
初始化的时候设置好degress后,为什么还要fit呢
由上一节内容,知道了degree,对应地用hstack对X操作就得到了【X,X2,…,Xdegress】矩阵不就好了吗,那么PolynomialFeatures的fit方法是做了什么呢?
还有个问题就是,之前讲LinearRegression里面的fit包括了将特征矩阵添加了一列全为1的X0
,方便来求theta0,也就是intercept_. 那么这里的
poly = PolynomialFeatures(degree=2)
poly.fit(X)
X2 = poly.transform(X)
也会因为表示X的零次幂,也得到了第一列全为1的X2,那么X2放进Ln_reg.fit()中的时候,此时X2就应该有头两列都是1的列向量了,一列来自ln_reg.fit中,一列来自poly.transform中的求X的零次幂。。。 而梯度下降更新theta的时候,求梯度这个向量的时候,梯度这个向量里的每一个元素分别是代价函数对各theta的偏导。 为什么X的第一列(全是1)和X的第二列(也全是1),求出来的theta0(对应intercept_ ?) 和 theta1(coef_的第一个元素,为0)会不一样呢,