一些数据挖掘算法,比如Apriori算法等,要求数据是分类属性形式,需要进行连续数据离散化。
连续数据离散化就是在数据的取值范围内,设定若干个离散的划分点,将取值范围划分为一些离散化的区间,最后用不同的符号或整数值代表落在每个子区间中的数据值。
离散化涉及两个子任务:
1、确定分类数
2、将连续属性值映射到这些分类值
举例1,先导入数据,如下:
常用的离散化方法:
1、等宽法
将数据的值域分成具有相同宽度的区间。区间的个数根据数据特点或用户指定。
缺点是对离群点比较敏感,不均匀地分布数据。
R语言:
v1 = ceiling(data[,1]*10) #宽度设为1,进行等宽离散化
Python:
import pandas as pd
data = pd.read_excel('discretization_data.xls')
data = data[u'肝气郁结证型系数'].copy()
k = 4
d1 = pd.cut(data,k,labels=range(k))
2、等频法
将相同数量的记录放进每个区间。
缺点是可能将相同的数据分到不同的区间。
R语言: