scikit-learn线性回归系数爆炸

时间:2017-07-14 18:26:15

标签: scikit-learn linear-regression

我使用scikit-learn LinearRegression类来填充一些数据。我有数字,布尔和名义数据的组合,后者每个类被拆分成一个布尔特征。当我尝试拟合4474样本或更少样本时,一切似乎都很好(尚未评估保留数据的确切拟合度)。但是当我尝试适应4475或更多样本时,系数会爆炸。

这里有4474个样本的系数(我必须改变这些特征名称,所以如果这让我很难理解,我会道歉):

-53.3027  A=0
-50.6795  A=1
-42.1567  A=2
-49.4219  A=3
-66.0913  A=4
-52.0004  A=5
-43.0018  A=6
356.6542  A=7
 -0.2452  B
 27.1991  C
  6.4098  D=0
-10.8283  D=1
  4.4185  D=2
 -5.4939  E=0
  5.4939  E=1
  7.5636  F=0
 23.2613  F=1
 15.6801  F=2
 16.6490  F=3
 20.1203  F=4
 15.6462  F=5
-98.9207  F=6
 74.4071  [intercept]

以下是4475个样本的系数:

-8851548433742.3105  A=0
-8851548433739.5312  A=1
-8851548433731.1660  A=2
-8851548433738.4355  A=3
-8851548433755.1465  A=4
-8851548433740.6699  A=5
-8851548433731.6973  A=6
-8851548433330.8164  A=7
            -0.2412  B
            27.2095  C
 7046334744114.7773  D=0
 7046334744097.5303  D=1
 7046334744112.7656  D=2
    5440635352.3035  E=0
    5440635363.2956  E=1
 -796471905928.9204  F=0
 -796471905913.2181  F=1
 -796471905920.8073  F=2
 -796471905919.8351  F=3
 -796471905916.3661  F=4
 -796471905920.8374  F=5
 -796471906035.3826  F=6
 2596244960233.4243  [intercept]

有趣的是,似乎可以了解名义类是什么,因为它给出了给定更高级别特征的所有其他潜在类的大致相似的值(例如,所有A=*大致相同)。因此,这些功能的相互排他性似乎是问题的一部分。

第4475个样本没有什么特别之处,它实际上与4474个样本相同。我试过跳过那个样本,并得到同样的效果。基本上,我无法将数据扩展到5k或更多(我有100k样本,所以我确实需要进一步扩展它。)

我甚至做过一些过滤(即删除缺少数据的样本而不是使用默认值),它具有相同的效果(在这种情况下,我看到过滤后4342nd和4343rd样本之间的爆炸) ,这是过滤前的第4474和4475个样本。所以它肯定部分是由于数据中存在一些潜在的怪癖,但这并不意味着这是一种有意的影响,显然不可能。

如果您想知道,4474个样本的系数对我使用的数据集有意义。

0 个答案:

没有答案