我正在尝试使用梯度提升机器来处理二进制分类问题。
给出下表的4列,其中ColumnA是我要预测的二进制值(0,1)
| ColumnA | ColumnB | ColumnC | ColumnD | ... |
| 0 |
| 1 |
在整个训练数据中,我计算出平均值,发现当A为0和1时,ColumnB的平均值之间存在较大差异,因此从我的解释来看,这意味着该值应该起非常重要的作用在预测中?
但是,当涉及到我要分类的未来数据时,我没有有关ColumnB的任何信息。我的问题是,仅取columnB的平均值并将其作为将来数据的值是否有意义,还是因为我无法在将来的值中获取该数据而应该完全删除ColumnB吗?
当前,我认为将平均值用作默认值是有道理的,但是既然这样会否定列在未来预测中的有效性,也许我一无是处吗?
答案 0 :(得分:1)
您问题的答案取决于两件事,首先是GB模型对B列的相对权重或重要性。如果模型对columnB
赋予了很大的权重,这是一个主要的决定因素在您的训练集中,然后用平均值填充空值或缺失值可能会导致预测错误。第二件事是columnB
上缺失值的数量。如果该列中总是丢失大量数据,例如30%或更多,则使用该列是没有意义的,因为模型将不可靠,并且您的训练数据在columnB中没有空值,因此该模型从未看到过数据与null
一起使用,并且在做出预测时会感到困惑。
在继续之前,您应该测试模型中功能的重要性。在没有columnB
的情况下检查准确性。最后一种解决方案或高级解决方案是拥有一个投票系统模型,在该模型中,您将拥有多个模型,有些模型带有columnB,有些没有。