有时数据集包含指示事件存在的变量和表示该事件的值。
例如,一位老师想预测他的学生的成绩。一些学生去年可能在他的班上,他可以使用该成绩作为变量。然而,也许只有 20% 的学生在他的班上,所以剩下的 80% 将有一个 Null 值。大多数 ML 算法不能接受 Null 值,因此必须以某种方式估算变量。
我想不出一种在这里有意义的插补方法,标准平均值/模式意味着所有学生都在课堂上,而且由于变量非常不平衡,80% 的值会被插补,我不认为它会持有任何有价值的信息。
有什么方法可以处理这种情况吗?
有时数据集包含指示事件存在的变量和表示该事件的值。
例如,一位老师想预测他的学生的成绩。一些学生去年可能在他的班上,他可以使用该成绩作为变量。然而,也许只有 20% 的学生在他的班上,所以剩下的 80% 将有一个 Null 值。大多数 ML 算法不能接受 Null 值,因此必须以某种方式估算变量。
我想不出一种在这里有意义的插补方法,标准平均值/模式意味着所有学生都在课堂上,而且由于变量非常不平衡,80% 的值会被插补,我不认为它会持有任何有价值的信息。
有什么方法可以处理这种情况吗?
好吧,您似乎正在处理稀疏数据,但是插补很困难,而且插补的尝试通常会增加微不足道的差异。您可以查看此链接以了解 Gharamani 和 Jordan 等一些方法。
这些是 SVM 的变体,专注于稀疏性质。
由于去年的成绩应该是一个重要的功能,我们应该在它可用的时候使用它。
我认为分层模型应该在这里工作。创建 2 个不同的模型,一个用于去年的学生,另一个用于剩余的 80%。我认为 20% 的样本可能会有其他功能,所有其他功能对于 2 个模型都是相同的。
对于笔记的特定情况,您可以尝试按类别对其进行转换,其中空值将具有不同的类别。
另一种选择是按平均值或中位数进行估算,但以前它会创建一个二进制变量来识别空值。