概述
在机器学习中,看过挺多案例,很多人在处理数据的时候,经常把连续性特征离散化。那么,什么情况下才需要对连续数据离散化呢?
一、什么是离散化?
连续数据:身高,年龄,工资
离散数据:矮,高;红,绿;好,坏……
- 连续属性的离散化就是将连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数值代表落在每个子区间中的属性值。
- 数据离散化是指将连续的数据进行分段,使其变为一段段离散化的区间。
- 连续特征离散化的本质是:决定选择多少个分割点和确定分割点的位置。
- 分段的原则有基于等距离、等频率或优化的方法。
二、离散化原因
数据离散化的原因主要有以下几点:
-
1、算法需要
比如决策树、朴素贝叶斯等算法,都是基于离散型的数据展开的。如果要使用该类算法,必须将离散型的数据进行。有效的离散化能减小算法的时间和空间开销,提高系统对样本的分类聚类能力和抗噪声能力。 -
2、离散化的特征相对于连续型特征更易理解,更接近知识层面的表达
比如工资收入,月薪2000和月薪20000,从连续型特征来看高低薪的差异还要通过数值层面才能理解,但将其转换为离散型数据(底薪、高薪),则可以更加直观的表达出了我们心中所想的高薪和底薪。 -
3、可以有效的克服数据中隐藏的缺陷,使模型结果更加稳定
三、离散化的优势
- 1、离散特征的增加和减少都很容易,易于模型的快速迭代;
- 2、稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;
离散化后的特征对异常数据有很强的鲁棒性(稳定性):比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰; - 3、逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合;
- 4、离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;
- 5、特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问;
- 6、特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。
四、离散化的方法
1、无监督学习方法
-
等宽法
等宽法即是将属性值分为具有相同宽度的区间,区间的个数k根据实际情况来决定。比如属性值在[0,60]之间,最小值为0,最大值为60,我们要将其分为3等分,则区间被划分为[0,20] 、[21,40] 、[41,60],每个属性值对应属于它的那个区间 -
等频法
等宽法即是将属性值分为具有相同宽度的区间,区间的个数k根据实际情况来决定。比如有60个样本,我们要将其分为k=3部分,则每部分的长度为20个样本。 -
基于聚类的方法
基于聚类的方法分为两个步骤,即:
选定聚类算法将其进行聚类,将在同一个簇内的属性值做为统一标记。
注:基于聚类的方法,簇的个数要根据聚类算法的实际情况来决定,比如对于k-means算法,簇的个数可以自己决定,但对于DBSCAN,则是算法找寻簇的个数。
2、有监督学习方法:
- 1R方法
- 基于信息熵的方法
- 基于卡方的方法
五、离散化处理的一般过程
- 对连续特征值按照某种指定的规则进行排序
- 初步确定连续属性的划分断点
- 按照某种给定的判断标准继续分割断点或合并断点
- 如果第三步得到判断标准的终止条件,则终止整个连续特征离散化的过程,否则继续按第三步执行
六、离散化方法的评价
区间的个数:是对模型简洁性的要求
离散化所导致的不一致性:离散化后的不一致性不能比离散化之前高。
预测准确性:通常通过交叉检验模式建立分叉树来衡量。
具有最简单的离散化结果
欢迎批评指正!
最后
以上就是兴奋往事为你收集整理的连续型特征离散化的原因分析的全部内容,希望文章能够帮你解决连续型特征离散化的原因分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复