数据挖掘-数据预处理

来自🥬🐶程序员 Truraly | 田园 的博客,最新文章首发于:田园幻想乡 | 原文链接 | github (欢迎关注)


数据类型:

  1. 名称型:区别性 比如:性别
  2. 顺序型:区别性,顺序性 比如:身高
  3. 间隔型:区别性,顺序性,可加减 比如:温度
  4. 比率型:区别性,顺序性,可加减,可乘除 比如:百分比

为什么要预处理数据:

  1. 数据不完整,比如缺失值
  2. 数据不一致,比如单位不一致
  3. 有噪声,比如错误数据

3.3.1 数据的中心趋势

平均数和加权平均数

首先这里有一组数据

1,,53,22,39,73,9,14

(算数)平均值:

x ‾ = 1 n ∑ i = 1 n x i \overline{x}=\frac{1}{n}\sum_{i=1}^{n}x_{i} x=n1i=1nxi

加权平均值:

x ‾ = ∑ i = 1 n w i x i ∑ i = 1 n w i \overline{x}=\frac{\sum_{i=1}^{n}w_{i}x_{i}}{\sum_{i=1}^{n}w_{i}} x=i=1nwii=1nwixi

其中: w i 是权重 x i 是数据 其中: w_{i} 是权重 x_{i} 是数据 其中:wi是权重xi是数据

众数,中位数和均值

参考资料:偏态分布的左偏右偏如何理解?| 知乎

众数:出现次数最多的数

中位数:将数据从小到大排列,中间的数

均值:平均数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上图情况为左偏态,反之为右偏态,中间为正态

描述数据的离散程度 & 箱线图

参考资料:箱形图 | 百度

  • 最小值(0 分位数)Q0
  • 最大值(1 分位数)
  • 中位数(0.5 分位数)Q2 (n+1)/2 位
  • 四分位数(0.25 分位数,0.75 分位数)Q1 Q3 (n+1)/4 位 (3n+3)/4 位

中间四分位数极差:IQR = Q3 - Q1

上限:Q3 + k * IQR

下限:Q1 - k * IQR

k 为一个常数,经验值为 1.5,区间外的数据为离群点,可根据情况忽视或者删除

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

EG:

1 2 2 5 6 9 9
Q0 = 1
Q1 = 2
M = 5
Q3 = 9


1 2 2 5 6 7 8 9 9
Q0 = 1
Q1 = 第2.5位 = 2
M = 第5位 = 6
Q3 = 第7.5位 = 8*0.5+9*0.5 = 8.5

1 2 3 4 5 6 7 8
Q0 = 1
Q1 = 第2.25位 = 2*0.75+3*0.25 = 2.25
M = 第4.5位 = 4.5
Q3 = 第6.75位 = 6*0.25+7*0.75 = 6.75

其他描述数据的方法

直方图:横轴为数据,纵轴为频数

分位图:横轴为数据,纵轴为累计频数

Q-Q 图:横轴为理论分位数,纵轴为样本分位数

散点图:横轴为数据,纵轴为数据

3.4 数据清洗

3.4.1 缺失值

缺失值的处理:

  1. 整条数据删除
  2. 人工填写
  3. 填写统一值
  4. 使用均值或者中位数填写(减少数据的方差)
  5. 使用类似数据的均值或者中位数填写(进一步减少影响)

3.4.2 数据清洗

针对数据的噪声,比如错误数据,重复数据,不一致数据

使用分箱方法,将数据分为多个箱子,然后将箱子中的数据替换为箱子的均值,这样可以减少噪声的影响(数据平滑)

  • 等宽分箱:将数据分为相同宽度的箱子,比如 0-10,10-20,20-30,依次将数据放入对应的箱子(箱子内数据不一致)。宽度一般为

w = m a x ( d a t a ) − m i n ( d a t a ) N w=\frac{max(data)-min(data)}{N} w=Nmax(data)min(data)

  • 等频分箱:将数据平等分为 n 份,每份数据个数相同

EG:

4 8 9 15 21 21 24 25 26 28 29 34
等宽分箱:
w = (34-4)/3 = 10
[4,14) | [14,24) | [24,34]
4 8 9 | 15 21 21 | 24 25 26 28 29 34

等频分箱:
w = 12/3 = 4 箱
4 8 9 15 | 21 21 24 25 | 26 28 29 34

3.5 数据集成和转换

3.5.3 数据转换

数据规范化:

  1. 最大最小规范化:将数据转换到某一区间。比如[0,1],公式为:

X ∗ = X − X m i n X m a x − X m i n X^{*}=\frac{X-X_{min}}{X_{max}-X_{min}} X=XmaxXminXXmin

  1. Z-Score 规范化:将数据转换为均值为 0,标准差为 1 的数据。公式为:

X ∗ = X − X ‾ S X^{*}=\frac{X-\overline{X}}{S} X=SXX

其中:
X ‾ 为均值 \overline{X} 为均值 X为均值

S 为标准差

S = 1 n ∑ i = 1 n ( X i − X ‾ ) 2 S=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(X_{i}-\overline{X})^{2}} S=n1i=1n(XiX)2

3.6 数据规约和数据变换

数据立方体聚合:将数据按照维度进行聚合,比如按照时间维度,地理维度,产品维度等

线性回归分析:使用线性方程拟合数据,然后使用方程代替数据

采样方法:对于类似的一个数据簇,可以使用其中一部分数据代替整个簇,要注意在整体中每个簇代替的数据比例要相同

3.6.2 数据离散化

数据离散化:将连续数据转换为离散数据,比如将年龄分为 0-10,10-20,20-30 等

数据离散化的方法:

  1. 基于信息增益的方法:使用熵来衡量数据的离散程度,熵越大,数据越离散,熵越小,数据越集中。使用信息增益来衡量数据的离散程度,信息增益越大,数据越离散,信息增益越小,数据越集中。信息增益的计算公式为:

I ( S , T ) = E n t r o p y ( S ) − ∑ v ∈ T ∣ S v ∣ ∣ S ∣ E n t r o p y ( S v ) I(S,T) = Entropy(S) - \sum_{v\in T}\frac{|S_{v}|}{|S|}Entropy(S_{v}) I(S,T)=Entropy(S)vTSSvEntropy(Sv)

其中:

E n t r o p y ( S ) = − ∑ i = 1 n p i l o g 2 p i Entropy(S) = -\sum_{i=1}^{n}p_{i}log_{2}p_{i} Entropy(S)=i=1npilog2pi

S 为数据集, T 为数据集的一个属性, S v 为 T 的一个值, p i 为 S v 中第 i 个类别的概率 S 为数据集,T 为数据集的一个属性,S_{v} 为 T 的一个值,p_{i} 为 S_{v} 中第 i 个类别的概率 S为数据集,T为数据集的一个属性,SvT的一个值,piSv中第i个类别的概率

这个东西后面 ID3 决策树会用到

  1. 基于卡方检验的方法:使用卡方检验来衡量数据的离散程度,卡方检验越大,数据越离散,卡方检验越小,数据越集中。卡方检验的计算公式为:

χ 2 = ∑ i = 1 n ( A i − E i ) 2 E i \chi^{2} = \sum_{i=1}^{n}\frac{(A_{i}-E_{i})^{2}}{E_{i}} χ2=i=1nEi(AiEi)2

其中:

A i 为实际值, E i 为期望值 A_{i} 为实际值,E_{i} 为期望值 Ai为实际值,Ei为期望值

  1. 基于自然分区的方法:使用人工的方式将数据分为多个区间,比如年龄分为 0-10,10-20,20-30 等

————————————————

版权声明:本文为 田园幻想乡 的原创文章,遵循 CC 4.0 BY-NA-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:http://truraly.fun/课程笔记/数据挖掘/【3】数据预处理.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值