机器学习模型支持缺失值的那些事儿


之前读过一些别人的文章,对于有些模型可以支持缺失数据这件事有点印象,最近开始做一个新的项目,缺失大量的数据,所以就想用这些支持缺失值的模型完成工作。

机器学习模型如何支持缺失值

其实,这个支持并不是说算法本身就不考虑缺失值了,而是开发这个包的程序员帮助你实现了数据预处理,也就是数据填充的工作。

支持缺失值的一些模型

目前我所了解的就是基于树类的模型、贝叶斯网络、神经网络的模型,下面简单介绍下。

基于树类的模型

随机森林

  • 把数值型变量中的缺失值用该特征的中位数替换,描述型用多数替换原则。
  • 对需要填充的样本和其他样本做相似度测量,通俗来说就是用与其最像的样本来填充。

XGBoost

xgboost处理缺失值的方法和其他树模型不同,xgboost把缺失值当做稀疏矩阵来对待,本身的在节点分裂时不考虑的缺失值的数值。缺失值数据会被分到左子树和右子树分别计算损失,选择较优的那一个。如果训练中没有数据缺失,预测时出现了数据缺失,那么默认被分类到右子树。

贝叶斯网络

贝叶斯网络是用来表示变量间连接概率的图形模式,它提供了一种自然的表示因果信息的方法,用来发现数据间的潜在关系。在这个网络中,用节点表示变量,有向边表示变量间的依赖关系。贝叶斯网络仅适合于对领域知识具有一定了解的情况,至少对变量间的依赖关系较清楚的情况。否则直接从数据中学习贝叶斯网的结构不但复杂性较高(随着变量的增加,指数级增加),网络维护代价昂贵,而且它的估计参数较多,为系统带来了高方差,影响了它的预测精度。当在任何一个对象中的缺失值数量很大时,存在指数爆炸的危险。

神经网络模型

神经网络的鲁棒性强,所以对于缺失数据不是非常敏感。

参考:https://blog.csdn.net/yh0vlde8vg8ep9vge/article/details/78265671

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值