Python数据挖掘008-数据规约
数据规约是产生更小但保持元数据完整性的新数据集的过程,好处在于:降低无效,错误数据对建模的影响,提高建模的准确性。少量且具有代表性的数据将大幅缩减数据挖掘所需时间。
数据规约可以理解为:减少属性个数--降维--属性规约,减少样本量--数值规约。
1. 属性规约
属性规约通过属性合并来创建新属性维数,或删除不相关的属性。
属性规约的目标是寻找最小的属性子集并确保新数据子集的概率分布尽可能接近原来数据集的概率分布。
image.pngPCA是一种用于连续属性的数据降维方法,构造了原始数据的一个正交变换,新空间的基底,取出来原始空间基底下数据的相关性,只需使用少量新变量就能够解释原始数据中的大部分变量。通常选出能够解释大部分数据的几个变量来代替原始变量进行建模。
在sklearn库中由PCA函数,其位于decomposition中,有三个比较重要的参数:
n_components: PCA 算法所要保留的主成分个数n,int or string, 默认为None,即所有成分都被保留,如果赋值为int,就是将原始数据降低到几个维度。赋值为string,eg n_component='mle',将自动选取特征个数n,使得满足所要求的方差百分比。
copy: 是否将原始数据复制一份。
whiten: 白化处理,使得每个特征具有相同的方差。
PCA降维的代码为:
data = pd.read_excel(r"E:\PyProjects\DataSet\PyMining\Data\chapter4\demo\data\principal_component.xls", header = None) #读入数据
print(data.info())
from sklearn.decomposition import PCA
pca = PCA()
pca.fit(data)
print(pca.components_) #返回模型的各个特征向量
print(pca.explained_variance_ratio_) #返回各个成分各自的方差百分比
explained_variance_ratio按照从高到低的顺序来展示新生成的属性的贡献率,其值越大,表明向量的权重越大。
当选择前面的3个主成分时,累计贡献率就已经超过了80%,故而选择降低到3维。
2. 数值规约
前面是在属性上减少个数,下面将会在样本个数上做文章,减少样本数量。
主要有有参数方法和无参数方法,有参数方法是使用一个模型来评估数据,只需存放参数,而不需要存放实际数据,例如线性回归和多元回归,对数线性模型等。
无参数方法就需要存放实际数据,比如直方图,聚类,抽样等。
2.1 直方图法
直方图使用分箱来近似数据分布,是一种流行的数据规约方式。某个属性的直方图将其数据分布划分维不相交的子集或桶,通常,桶表示给定属性的一个连续区间。比如:
image.png这种方式类似于连续数值的离散化。
2.2 聚类
聚类技术将样本当作对象,对这些对象划分维簇,是一个簇中的样本相互类似,那么可以用这些样本的簇中心来代替实际的样本数据。
2.3 抽样
用比原始数据小得多的随机样本来表示原始数据集,有无放回简单随机抽样,有放回简单随机抽样,聚类抽样,分层抽样。
2.4 参数回归
简单线性模型和对数线性模型可以用来近似描述给定的数据。
image.png用一条直线方程来代表该数据集中的所有样本。
参考资料:
《Python数据分析和挖掘实战》张良均等