我使用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个样本的系数对我使用的数据集有意义。