【机器学习】决策树为什么对缺失值不敏感,如何处理缺失值?

简介: 文章探讨了决策树对缺失值不敏感的原因,并提出了处理缺失值的多种策略,包括在属性选择、分割点决定和模型测试阶段的不同处理方法。

决策树处理缺失要考虑以下三个问题:


1、当开始选择哪个属性来划分数据集时,样本在某几个属性上有缺失怎么处理:


(1)忽略缺失样本。

(2)填充缺失值

(3)计算信息增益率时根据缺失率的大小对信息增益率进行打折,例如计算属性A的信息增益率,若属性 A的缺失率为0.9,则将信息增益率乘以0.9作为最终的信息增益率。


2、一个属性已经被选择,那么在决定分割点时,有些样本在这个属性上有缺失怎么处理?


(1)忽略这些缺失的样本。

(2)填充缺失值,例如填充一个均值或者用其他方法将缺失值补全。 把缺失的样本,按照无缺失的样本被划分的子集样本个数的相对比率,分配到各个子集上去,至于那 些缺失样本分到子集1,哪些样本分配到子集2,这个没有一定准则,可以随机而动。

(3)把缺失的样本分配给所有的子集,也就是每个子集都有缺失的样本。

(4)单独将缺失的样本归为一个分支。


3、决策树模型构建好后,测试集上的某些属性是缺失的,这些属性该怎么处理?

(1)如果有单独的缺失值分支,依据此分支。

(2)把待分类的样本的属性A分配一个最常出现的值,然后进行分支预测。

(3)待分类的样本在到达属性A结点时就终止分类,然后根据此时A结点所覆盖的叶子节点类别状况为其 分配一个发生概率最高的类。


目录
相关文章
|
数据采集 机器学习/深度学习 数据挖掘
【机器学习4】构建良好的训练数据集——数据预处理(一)处理缺失值及异常值
【机器学习4】构建良好的训练数据集——数据预处理(一)处理缺失值及异常值
551 0
|
机器学习/深度学习 存储 数据采集
机器学习(十三)缺失值处理的处理方法总结
机器学习(十三)缺失值处理的处理方法总结
903 0
|
5月前
|
机器学习/深度学习 算法 Python
【Python】已完美解决:机器学习填补数值型缺失值时报错)TypeError: init() got an unexpected keyword argument ‘axis’,
【Python】已完美解决:机器学习填补数值型缺失值时报错)TypeError: init() got an unexpected keyword argument ‘axis’,
51 1
|
7月前
|
机器学习/深度学习 SQL 人工智能
人工智能平台PAI 操作报错合集之机器学习PAI缺失值补充报错,从odps读取数据正常 进行下一步时,补充缺失值报错如何解决
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
|
7月前
|
机器学习/深度学习 数据采集 数据可视化
【Python 机器学习专栏】数据缺失值处理与插补方法
【4月更文挑战第30天】本文探讨了Python中处理数据缺失值的方法。缺失值影响数据分析和模型训练,可能导致模型偏差、准确性降低和干扰分析。检测缺失值可使用Pandas的`isnull()`和`notnull()`,或通过可视化。处理方法包括删除含缺失值的行/列及填充:固定值、均值/中位数、众数或最近邻。Scikit-learn提供了SimpleImputer和IterativeImputer类进行插补。选择方法要考虑数据特点、缺失值比例和模型需求。注意过度插补和验证评估。处理缺失值是提升数据质量和模型准确性关键步骤。
672 0
|
机器学习/深度学习 人工智能 数据处理
详解机器学习中的数据处理(一)——缺失值处理(附完整代码)
详解机器学习中的数据处理(一)——缺失值处理(附完整代码)
673 0
|
机器学习/深度学习 Python
机器学习:数据特征预处理缺失值处理
机器学习:数据特征预处理缺失值处理
150 0
|
21天前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
65 4
|
18天前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
37 1
|
26天前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络