数据中的特征有时会包含缺失值,这意味着该值是未知的。如果我将未知值替换为“0”之类的特殊正常值,那么聚类算法会将它们按相同的方式进行交易,因为两者都是 0。但是“两个未知”并不意味着它们“相同”,实际上是未知的意思没有什么。
我应该忽略所有包含未知特征的数据,还是忽略所有包含未知值的特征?我认为两者都太过分了。
有没有更好的方法来处理聚类问题的未知数据?
谢谢
数据中的特征有时会包含缺失值,这意味着该值是未知的。如果我将未知值替换为“0”之类的特殊正常值,那么聚类算法会将它们按相同的方式进行交易,因为两者都是 0。但是“两个未知”并不意味着它们“相同”,实际上是未知的意思没有什么。
我应该忽略所有包含未知特征的数据,还是忽略所有包含未知值的特征?我认为两者都太过分了。
有没有更好的方法来处理聚类问题的未知数据?
谢谢
如果您排除具有缺失值的特征,您的结论可能会产生偏差或丢失信息。
考虑一个包含 10 名患者及其胆固醇值的数据集。您有兴趣根据这些特征预测胆固醇值。您可能有一个特征、研究开始时的年龄和一个特征# chol checks last month.
5 名患者缺少后者,因为他们非常健康,以至于他们决定甚至不通过向您发送数据来跟进。在这种情况下,如果您排除该功能,您可能会排除您的最佳预测器。
一个更好的方法是注意所有没有跟进的患者也恰好是年轻患者。另外您可能会注意到,对于确实有 # 个胆固醇检查记录发送给您的 5 位患者,数据是这样的
age # checks
50 10
60 20
70 30
80 40
您可以看到胆固醇检查和年龄之间存在关系;你甚至可以计算出回归的参数。您可以使用此回归来填充年轻患者的缺失值。这就是矩阵完成背后的想法。
但是,您估算的值将是单个值,并且您不会感觉到它们到底有多好。为了做出预测,你可以拿出一个测试集,看看你的插补方法是否真的能改善结果。对于集群,取决于您的应用程序,因为很难将您的插补方法评估为某个较大管道中的一个步骤,因此也可以按照@mkt 的建议考虑多重插补。