r语言变量长度不一致怎么办_R语言实现数据离散化方法总结

本文介绍了R语言中数据离散化的重要性,包括无监督的等宽、等频和kmeans分箱方法,以及有监督的卡方分箱算法,如chiM、chi2等,并提供了具体的R代码示例。数据离散化能提高模型效率,降低异常值影响,且便于业务解释。
摘要由CSDN通过智能技术生成

前言

在做数据挖掘模型的时候,我们有时会需要把连续型变量转型离散变量,这种转换的过程就是数据离散化,分箱就是离散化常用的一种方法。

数据离散化处理属于数据预处理的一个过程,R语言在数据处理上有天然的优势,也有直接用于离散化计算的包,无监督的离散化可以用infotheo包,有监督的离散化可以用discretization包来处理复杂的离散化操作。

目录

  1. 数据离散化的需求

  2. 无监督的数据离散化

  3. 有监督的数据离散化

1. 数据离散化的需求

数据离散化,教课书上面的定义是,把无限空间中有限的个体映射到有限的空间中。数据离散化操作,大多是针对连续型变量进行的,处理之后数据从连续型变量转变为离散型变量。

离散化处理的特点:

  • 快速迭代,离散化的过程,离散特征增加和减少都很容易,易于扩展。

  • 高效计算,稀疏向量内积乘法运算速度快,计算结果方便存储。

  • 适应性,有些分类模型适合用离散化数据做为数据指标,比如决策树虽然支持输入连续型变量,但决策树模型本身会先将连续型变量转化为离散型变量,做逻辑回归时,也通常会先把连续型特征变量离散化,变成0或1。

  • 鲁棒性,数据离散化会让特征变化不是特别明显,特别是对于降低异常数据干扰。

  • 稳定性,牺牲了数据的微小变化,但保证了模型的稳定性。

  • 过拟合,减少的数据信息,降低了过拟合的风险。

  • 业务性,业务上已经定义出了离散值的含义,需要做离散化处理。

离散化处理通常对连续型变量进行处理,但同时也可以对离散型变量再进行离散化,适用于数据聚合或重新分组。

2. 无监督的数据离散化

我们可以无监督的数据离散化方法,进行数据的分箱操作,包括等宽分箱法、等频分箱法、通过kmeans分箱法等。

  • 等宽分箱法,将观察点均匀划分成n等份,每份的间距相等。

  • 等频分箱法,将观察点均匀分成n等份,每份的观察点数相同。

  • kmeans分箱法,先给定中心数,将观察点利用欧式距离计算与中心点的距离进行归类,再重新计算中心点,直到中心点不再发生变化,以归类的结果做为分箱的结果。

接下来,我们用R语言来实现上面提到的几种分箱的操作。

2.1 准备数据

本文所使用的系统环境

  • Win10 64bit

  • R: 3.2.3 x86_64-w64-mingw32/x64 b4bit

首先,生成一组数据,这组织通过3个正态分布的随机数进行叠加,主要用于体现分箱的不同特征。


# 设置随机数种子,生成符合正态分布N(0,1)的数据1000个点
> set.seed(0)
> a1
> set.seed(1)
> a2
> set.seed(2)
> a3
# 按顺序,合并3种数据
> aa
# 查看数据
> head(aa,30)
[1] 1.26295 -0.32623 1.32980 1.27243 0.41464 -1.53995 -0.92857 -0.29472 -0.00577 2.40465 0.76359
[12] -0.79901 -1.14766 -0.28946 -0.29922 -0.41151 0.25222 -0.89192 0.43568 -1.23754 -0.22427 0.37740
[23] 0.13334 0.80419 -0.05711 0.50361 1.08577 -0.69095 -1.28460 0.04673

画出数据的散点图,x轴为索引序号,y轴为值。


> plot(aa)

c245b75f2899538a47d41dca9d94f9cc.png

查看数据的分布形状,x轴为值,y轴为这个值出现的次数。


# 画出数据的直方图

> hist

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值