数据离散化----------理论篇(1)

前言

很多小伙伴在做数据分析时需要将连续的数据离散化,然后再代入数理模型中去运行,这样可以提高模型的一个运行性能,毕竟处理后的特征数据较原始的数据定位会更精准一些,更符合数理模型的数据特征输入准则。

目录

前言

什么是数据离散化?

为什么要数据离散化?

离散化的优势有那哪些?

数据离散化的方法

1、等距离散法

2、等频率离散法

3. K-means模型离散法

算法思想

实现kmeans算法的step

4. 分位数 (percentile)离散法

5. 二值化离散法

6. 基于卡方分箱的离散法

step1:初始化步骤

step2:合并

7. 1R离散法

实现步骤


什么是数据离散化?

简单来说就是将连续型数据转变成离散型数据。

数据离散化是指将连续的数据进行分段,使其变为一段段离散化的区间,分段的原则有基于等距离、等频率、聚类或优化的方法。

为什么要数据离散化?

1、算法需要:比如决策树、马尔可夫链、朴素贝叶斯等算法,都是基于离散型的数据展开的。如果要使用该类算法,必须将离散型的数据进行。有效的离散化能减小算法的时间和空间开销,提高系统对样本的分类、聚类能力和抗噪声能力。

2、离群值处理:假设大部分人听歌都很平均,会不停的听新的歌曲,但是有一个用户24小时的不停播放同一首歌曲,并且这个歌曲很偏门,导致这首歌的总收听次数特别高。如果用总收听次数来喂给模型,就会误导模型。

3、提高数据处理效率的需要。

4、提高数据处理准备度的需要。

离散化的优势有那哪些?

实验中很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点:

1、离散特征的增加和减少都很容易,易于模型的快速迭代;

2、稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;

3、离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;

4、 逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合;

5、 离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;

6、 特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问;

7、特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。

这里引用了知乎作者----画船听雨眠对离散化的优点的回答

数据离散化的方法

1、等距离散法

等距法也称等宽法,这个从字面意思上很容易理解,即是将属性值分为具有相同宽度的区间,区间的个数k根据实际情况来决定。比如属性值在[0,60]之间,最小值为0,最大值为60,我们要将其分为3等分,则区间被划分为[0,20] 、[21,40] 、[41,60],每个属性值对应属于它的那个区间。该等区间法可以较好的保留数据的完整分布性。

2、等频率离散法

根据数据的频率分布进行排序,然后按照频率进行离散,好处是数据变为均匀分布,但是会更改原有数据的分布状态。简而言之,就是根据数据频率分布去划分数据区间。

3. K-means模型离散法

k-means算法又称k均值算法,K-means算法中的k表示的是聚类为k个簇,means代表取每一个聚类中数据值的均值作为该簇的中心,或者称为质心,即用每一个的类的质心对该簇进行描述。

算法思想

先从样本集中随机选取 k个样本作为簇中心,并计算所有样本与这 k个“簇中心”的距离,对于每一个样本,将其划分到与其距离最近的“簇中心”所在的簇中,对于新的簇计算各个簇的新的“簇中心”。

实现kmeans算法的step

(1)随机选取 k个样本作为簇中心。

(2)计算各个样本点到“簇中心”的距离。---------------------使用欧式距离、曼哈顿距离、余弦距离进行计算

在这里插入图片描述

(3)对于每一个样本,将其划分到与其距离最近的“簇中心”所在的簇中。

(4)重新计算各个簇的新的“簇中心”。

  简而言之就是用每个簇中全部样本的均值作为各个簇的新的“簇中心”

(5)重复执行(2)到(4)步骤,直至"簇中心"没有移动。

4. 分位数 (percentile)离散法

利用四分位、五分位、十分位等分位数进行离散。

例如:四分位数据离散化就是把所有数据的数值由小到大排列并分成四等份。

四分位数位置的计算公式:

Q1的位置= (n+1) × 0.25

Q2的位置= (n+1) × 0.5

Q3的位置= (n+1) × 0.75

四分位距(IQR),是一种衡量一组数据离散程度的统计量。其值为第一四分位数和第三四分位数的差距。

四分位距的计算公式如下:

其中 Q1 为第一四分位数, Q3 为第三四分位数。

5. 二值化离散法

首先设置一个阈值,然后数据跟阈值比较,大于阈值设置为某一固定值(例如1),小于设置为另一值(例如0),然后得到一个只拥有两个值域的二值化数据集。

6. 基于卡方分箱的离散法

分箱的方法有很多,卡方分箱属于其中一种,属于有监督系列的。卡方分箱正是一种基于卡方检验的分箱方法。

step1:初始化步骤

  • 根据连续变量值大小进行排序
  • 构建最初的离散化,即把每一个单独的值视为一个箱体。这样做的目的就是想从每个单独的个体开始逐渐合并。

step2:合并

上面已经将初始化的内容构建完毕,这一步就是不断地合并了,自底向上的合并,直到满足停止条件。那么它是如何合并的呢?
论文中提到的具体操作是这样的:

  • 计算所有相邻分箱的卡方值:也就是说如果有1,2,3,4个分箱,那么就需要绑定相邻的两个分箱,共三组:12,23,34。然后分别计算三个绑定组的卡方值。
  • 从计算的卡方值中找出最小的一个,并把这两个分箱合并:比如,23是卡方值最小的一个,那么就将2和3合并,本轮计算中分箱就变为了1,23,4。

背后的基本思想是:如果两个相邻的区间具有非常类似的类分布,那么这两个区间可以合并。否则,它们应该分开。低卡方值表明它们具有相似的类分布。
停止条件

上面的步骤只是每一轮需要计算的内容,如果我们不设置停止条件,算法就会一直运行。当然,我们一般会设置一些停止条件:

  • 卡方停止的阈值
  • 分箱数目的限制

意思就是说,只要当所有分箱对的卡方值都大于阈值,并且分箱数目小于最大分箱数时,计算就会继续,直到不满足。

由公式可以知道理论频数(Expectation)和实际频数(Observation)的偏差越小,这个卡方就会越小。 

7. 1R离散法

1R 就是 1-rule,称为1 规则,也就是产生一层的决策树,用一个规则集的形式,只在某个特定的属性上进行测试。

实现步骤

1、对所有的属性进行遍历。
2、对该属性,按照如下方式产生一条规则。
3、计算每个类别出现的次数。
4、找出最频繁的类别。
5、产生一条规则,将该类别分配给该属性值。
6、计算规则产生的误差。
7、选择误差最小的规则。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

!continue!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值