数据变换的几种形式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据变换的⼏种形式
数据变换主要是对数据进⾏规范化处理,达到适⽤于挖掘的⽬的。
简单的函数变换包括平⽅、开⽅、取对数查分运算等,可以将不具有正态分布的数据变换成具有正态分布的数据,对于时间序列分析,有时简单的对数变换和差分运算就可以将⾮平稳序列转换成平稳序列。
数据规范化
1、最⼤——最⼩规范化:X *=(x-min)/(max-min)
映射到 [0,1] 之间,若数据集中且某个数值太⼤,则规范化后各值都接近0,且相差不⼤
2、零——均值规范化:X*=(x-mean)/ sigma
⽬前⽤的最多的数据标准化⽅法
3、⼩数定标规范化:X*=x /(10^k)
通过移动属性值的⼩数位数,映射到 [-1,1] 之间,移动的⼩数位数取决于属性值绝对值的最⼤值
1#-*- coding: utf-8 -*-
2#数据规范化
3import pandas as pd
4import numpy as np
5
6 datafile = '../data/normalization_data.xls'#参数初始化
7 data = pd.read_excel(datafile, header = None) #读取数据
8
9 data1=(data - data.min())/(data.max() - data.min()) #最⼩-最⼤规范化
10print(data1)
11 data2=(data - data.mean())/data.std() #零-均值规范化
12print(data2)
13 data3=data/10**np.ceil(np.log10(data.abs().max())) #⼩数定标规范化
14print(data3)
连续属性离散化
⼀些数据挖掘算法要求数据是分类属性形式,就需要将连续属性转变为分类属性
1、等宽法:类似于制作频率分布表,将属性的值域划分为相等宽度的区间,区间的个数由数据本⾝特点决定
2、等频法:将相同数量的记录放到每个区间
3、聚类:⼀维聚类的两个步骤,⾸先⽤聚类算法如(K-means算法)进⾏聚类,然后处理聚类得到的簇。
下⾯实现等宽法和等频法离散化。
1import pandas as pd
2
3 datafile='../big-data/data-anaysis/example/chapter4/chapter4/demo/data/discretization_data.xls'
4 data=pd.read_excel(datafile)
5#取该列
6 data=data[u'肝⽓郁结证型系数'].copy()
7 k=4
8
9
10#等宽离散化
11 d1=pd.cut(data,k,labels=range(k))
12
13
14#等频离散化
15 w=[1.0*i/k for i in range(k+1)]
16#⾃动计算分数位
17 w=data.describe(percentiles=w)[4:4+k+1]
18 w[0]=w[0]*(1-1e-10)
19
20 d2=pd.cut(data,w,labels=range(k))