我偶然发现了一些奇怪的线性回归行为。该代码将NP.M
(特征矩阵)中包含的特征与数据NP.flatDW
相匹配,数据以NP.flatweights
作为权重。特征矩阵具有以下形状:
>>> np.shape(NP.M)
(2121, 27)
因此,NP.M[:, np.arange(0, 27)] == NP.M
尽管如此
>>> np.sum(NP.M[:, np.arange(0, 27)] == NP.M) == np.size(NP.M)
True
出现以下情况:
>>> reg = LinearRegression()
>>> reg.fit(NP.M[:, np.arange(0, 27)], NP.flatDW, sample_weight = NP.flatweights)
>>> reg.score(NP.M[:, np.arange(0, 27)], NP.flatDW, sample_weight = NP.flatweights)
0.99461571849945363
>>> reg2 = LinearRegression()
>>> reg2.fit(NP.M, NP.flatDW, sample_weight = NP.flatweights)
>>> reg2.score(NP.M, NP.flatDW, sample_weight = NP.flatweights)
0.99473478592046516
如您所见,NP.M[:, np.arange(0, 27)]
的得分低于NP.M
的得分,但它们应该相等。你知道吗
这似乎不是score函数中的错误,因为
>>> reg.score(NP.M, NP.flatDW, sample_weight = NP.flatweights)
0.99461571849945363
结果与上述reg.score
相同,两种回归的预测结果不同。你知道吗
那么,索引是如何改变背景中的特征矩阵的呢?是否存在一些隐藏的数字问题?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐