我正在用我创建的数据集在Matlab中训练一个分类器。不幸的是,数据集中的一些特性没有被记录下来。
我目前的未知功能设置为-99999。
因此,例如,我的数据集如下所示:
class1: 10 1 12 -99999 6 8
class1: 11 2 13 7 6 10
...
class2: 5 -99999 4 3 2 -99999
class2: -99999 16 4 3 1 8
...
class3: 18 2 11 22 7 5
class3: 19 1 9 25 7 5
...以此类推,-99999是特征无法测量的地方.在这种情况下,每个类都有6个特性。
我不想让我的分类器偏向未知的特征,所以我认为将未知值设置为-99999是个好主意,这样就超出了正常特征的范围。
我用-99999's对分类器进行了测试,准确率为78%。然后我把-99999改为0's,再次测试了分类器,这次是91%的准确率。
所以我的问题是,在没有记录一些特征的情况下,训练分类器的一般规则是什么?我认为将未知数设置为非常高的负值是正确的吗?但是为什么当我把未知数设为0的时候它会更准确呢?
感谢您的阅读!
发布于 2019-04-15 03:30:23
欢迎来到数据科学SE!
嗯,我们说我们大部分的工作是和数据争论,这是因为数据通常是在欺骗我们……撇开笑话不说:
这意味着您必须清理数据并填充这些缺失的值。要执行这个清洁过程,你必须从你体内最经典的统计学家那里问:
特定信息不可用的原因有很多。这将要求你做出假设,并决定如何处理这个问题。
杰夫·索罗( Jeff )在测量U:处理丢失数据的7种方法上发布了一些我在这里列出的内容:
如果您有一个大的数据集,并且没有丢失多少数据,您可以简单地删除那些损坏的数据点,然后继续生活。
有些问题会让你回去获取丢失的信息。
了
有时,你只需看一看它们的梨,就可以推断出它们的特征值。这有点武断,但可能会奏效。
这是最常见的方法,只要它丢失时就使用该值的平均值。这可能会人为地减少您的差异,但使用0或-9999也是如此.每一个缺失的价值。
可以使用多元回归从每个候选人的可用值中推断缺少的值。
关于缺失数据的一些参考资料如下:
关于你的实验的
加上-99.正在创建异常值,而这一位信息是很重的(从数字上讲,它是巨大的),并且会影响参数的调整。例如,假设您有以下数据:
| Feature1 | Feature2 |
|----------|----------|
| 0 | 8 |
| -1 | 7 |
| 1 | - |
| - | 8 |你试着用-99填充缺失的值,现在试着通过数据拟合一个线性回归。你能看出你不能很好地安装它吗?

这条线不合适,这会产生不好的性能。
另一方面,添加0值会给出稍微好一点的行:

它仍然不是很好,但稍微好一点,因为规模的参数将更加现实。
现在,用平均值,这种情况会给你更好的曲线,但使用回归会给你一个完美的拟合线:

。
https://datascience.stackexchange.com/questions/49298
复制相似问题