因此,我在搜索如何处理丢失的数据,并从机器学习掌握中发现了这个职位。
本文提出了一些算法,如朴素贝叶斯和KNN等,可以使算法对丢失的数据具有鲁棒性。
当数据丢失时,并非所有的算法都会失败。有一些算法可以使其对丢失的数据具有鲁棒性,例如,当一个值丢失时,k近邻可以忽略距离度量中的列。当进行预测时,朴素贝叶斯也可以支持缺失值。
但是它说sklearn实现对于丢失的数据并不可靠。
遗憾的是,对于朴素的Bayes、决策树和k近邻的scikit学习实现对于丢失的值并不可靠。
是否有这些算法对丢失的数据具有鲁棒性的ML库(最好是Python,但也可以是其他语言)?
发布于 2021-04-04 23:10:50
发布于 2021-04-06 21:37:50
据我所知,在scikit中支持NaN's的唯一算法--学习/ Python是通过设置以下方法来使用的HistGradientBoostingClassifier:
# explicitly require this experimental feature
from sklearn.experimental import enable_hist_gradient_boosting # noqa
# now you can import normally from ensemble
from sklearn.ensemble import HistGradientBoostingClassifier但这仍处于试验阶段。
来自scikit-学习文档:
此估计器对缺失值(NaNs)具有本机支持。在训练过程中,树树种植者根据潜在的增益,在每个分割点上学习缺少值的样本是应该转到左边还是右边。在预测时,将丢失值的样本分配给左或右子节点。如果在培训期间没有遇到给定功能的缺失值,则会将缺少值的样本映射到具有最多样本的哪个子属性。这个实现是受LightGBM启发的。

发布于 2021-04-07 10:32:11
我想补充的是,除了ML库对(更确切地说是) Nan值(例如XGBoost、kNN实现)具有很强的鲁棒性外,还有一些缺失的数据估算技术。一旦你实现了它们,你就可以尝试任何ML算法。然而,有一些是他们,你必须看看什么是最好的。作为参考,你可以看看热甲板的估算。
https://datascience.stackexchange.com/questions/92528
复制相似问题