【问题标题】:Replace missing values with mean (Weka)用平均值替换缺失值(Weka)
【发布时间】:2012-05-03 10:26:56
【问题描述】:

在 Weka 中有一个名为“ReplaceMissingValues”的过滤器,它允许使用每个属性的平均值替换数据集中的所有缺失值。我想使用属于某个类的值的平均值来替换某个属性的缺失值。例如,在二进制数据集中,我认为使用仅使用属于正类的记录计算的平均值来替换属于正类的记录中的属性的缺失值更正确。那么怎么可能实现呢?我们如何只替换属于某个类的记录的值?

【问题讨论】:

    标签: replace weka missing-data


    【解决方案1】:

    如果您想通过获取从特定 A 类的训练实例计算的平均值来替换 A 类的缺失值,那么您就是在“偏向”您的数据集。为避免偏差(最终会使您的训练模型过拟合),明智的做法是使用默认的“替换缺失值”功能——即考虑所有训练实例的均值和模式,而不仅仅是特定类。

    【讨论】:

    • 我正在处理一个医学数据集,所以我认为用记录所属类别的平均值替换可能更“现实”。我也会尝试使用替换缺失值功能,但我也希望能够在不修改原始数据文件(xls 文件!)的情况下尝试我的想法。
    • 正如我所说,你很有可能过度拟合你的训练模型。因为,在现实生活中,看不见的数据更有可能具有特征 X,其值实际上并不是特定类别的平均值。如果你用这种设置训练你的模型,模型只会知道“特征 X 的值实际上更接近任何特定 A 类的平均值”——如果不是这样,那么你肯定是让你的模型过拟合。
    • 我尝试了你的建议(使用用 J48 构建的树),我得到的结果比使用缺失值最差!这怎么可能?
    • 我不知道为什么会这样。但我相信有大量关于缺失值对决策树的影响的研究。 ieeexplore.ieee.org/xpl/…
    • J48 通过根据现有值频率拆分样本来处理缺失值。在运行树之前替换缺失值时,实际上覆盖了 J48 对缺失值的处理。这可能是你得到更差结果的原因
    猜你喜欢
    • 2018-02-05
    • 2018-12-27
    • 1970-01-01
    • 2017-02-24
    • 2013-09-07
    • 1970-01-01
    • 1970-01-01
    • 2020-08-15
    相关资源
    最近更新 更多