【数据分析】-006-数据预处理-数据规约

数据规约

在大数据集上进行复杂的数据分析和挖掘需要很长的时间,数据规约产生更小但保持原 数
据完整性的新数据集。在规约后的数据集上进行分析和挖掘将更有效率。

  • 数据规约的意义在于:
    □ 降低无效、错误数据对建模的影响,提高建模的准确性;
    □ 少量且具代表性的数据将大幅缩减数据挖掘所需的时间;
    □ 降低储存数据的成本。

属性规约

属性规约通过属性合并来创建新属性维数,或者直接通过删除不相关的属性(维)来减少数据维数,从而提高数据挖掘的效率、降低计算成本。属性规约的目标是寻找出最小的属性子集并确保新数据子集的概率分布尽可能地接近原来数据集的概率分布。

  • 属性规约常用方法
属性规约方法 方法描述
合并属性 将一些旧属性合为新属性
逐步向前选择 从一个空属性集开始,每次从原来属性集合中选择一个当前最优的属性添加到当前属性子集中。直到无法选择出最优属性或满足一定阈值约束为止
逐步向后删除 从一个全属性集开始,每次从当前属性子集中选择一个当前最差的属性并将其从当前属性子集中消去。直到无法选择出最差属性为止或满足一定阈值约束为止
决策树归纳 利用决策树的归纳方法对初始数据进行分类归纳学习,获得一个初始决策树,所有没有出现在这个决策树上的属性均可认为是无关属性,因此将这些属性从初始集合中删除,就可以获得一个较优的属性子集
主成分分析 用较少的变量去解释原始数据中的大部分变量,即将许多相关性很高的变量转化成彼此相互独立或不相关的变量

逐步向前选择、逐步向后删除和决策树归纳是属于直接删除不相关属性(维)方法。主成分分析是一种用于连续属性的数据降维方法,它构造了原始数据的一个正交变换,新空间的基底去除了原始空间基底下数据的相关性,只需使用少数新变量就能够解释原始数据中的大部分变异。在应用中,通常是选出比原始变量个数少,能解释大部分数据中的变量的几个新变量,即所谓主成分,来代替原始变量进行建模。

方法解析

  • 合并属性
    初始属性集:\{A_1,A_2,A_3,A_4,B_1,B_2,B_3,C\}\\\{A_1,A_2,A_3,A_4\}\to A \\\{B_1,B_2,B_3\}\to B \\\implies 规约后属性集:\{A,B,C\}
  • 逐步向前选择
    初始属性集:\{A_1,A_2,A_3,A_4,A_5,A_6\}\\\{\}\implies \{A_1\}\implies \{A_1,A_4\} \\\implies 规约后属性集:\{A_1,A_4,A_6\}
  • 逐步向后删除
    始属性集:\{A_1,A_2,A_3,A_4,A_5,A_6\}\\ \implies \{A_1,A_3,A_4,A_5,A_6\} \implies \{A_1,A_4,A_5,A_6\} \\\implies 规约后属性集:\{A_1,A_4,A_6\}
  • 决策树归纳
    始属性集:\{A_1,A_2,A_3,A_4,A_5,A_6\} \\ \implies 规约后属性集:\{A_1,A_4,A_6\}
  • 主成分分析的计算步骤如下:

1)设原始变量X_1,X_2,...,X_p的 n 次观测数据矩阵为:

X = \begin{bmatrix} X_11 & X_12&...X_{1p} \\ X_21 & X_22&...X_{2p}\\\vdots & \vdots & \vdots \\X_n1 & X_n2&...X_{np} \end{bmatrix} = (X_1,X_2,...,X_p)
2)将数据矩阵按列进行中心标准化。为了方便,将标准化后的数据矩阵仍然记为X。
3)求相关系数矩阵R,R =(r_{ij}p*p),r_{ij} 的定义为:
r_{ij}=\sum_{k=1}^n(x_{ki}-\overline{x}_j)(x_{kj}-\overline{x}_j)/\sqrt{\sum_{k=1}^n(x_{ki}-\overline{x}_j)^2 \sum_{k=1}^n(x_{kj}-\overline{x}_j)^2 }
其中,r_{ij}=r_{ji},r=1
4)求&的特征方程det(R-\lambda E) = 0的特征根\lambda _1 \geq \lambda _2 \geq \lambda _p>=0
5)确定主成分个数m:\frac{\sum_{i=1}^m \lambda _i}{\sum_{i=1}^p \lambda _i}\geq \alpha ,\alpha根据实际问题确定,一般取80%。
6)计算m个相应单位特征向量:
\beta_1 = \begin{bmatrix} \beta_{11} \\ \beta_{21} \\ \vdots \\ \beta_{p1} \end{bmatrix}, \beta_2 = \begin{bmatrix} \beta_{12} \\ \beta_{22} \\ \vdots \\ \beta_{p2} \end{bmatrix},...,\beta_m = \begin{bmatrix} \beta_{m2} \\ \beta_{m2} \\ \vdots \\ \beta_{m2} \end{bmatrix}
7)计算主成分:
Z_i = \beta_{li}X_1+ \beta_{2i}X_2+...+ \beta_{pi}X_p,i=1,2,...m
在 Python 中,主成分分析的函数位于 Scikit-Leam 下:
sklearn.decomposition.PCA(n_components = None, copy = True, whiten = False)
参数说明:

  • (1) n components
    意义:PCA 算法中所要保留的主成分个数n,也即保留下来的特征个数眼
    类型:int 或者 string,缺省时默认为 None,所有成分被保留。赋值为int,比如 n compo-nents=l,将把原始数据降到一个维度。赋值为string,比如n components-mle',将自动选取特征个数n,使得满足所要求的方差百分比。
  • (2) copy
    类型:bool, True 或者 False,缺省时默认为 True.
    意义:表示是否在运行算法时,将原始训练数据复制一份。若为 True,则运行 PCA 算法后,原始训练数据的值不会有任何改变,因为是在原始数据的副本上进行运算;若为 False,则运行 PCA算法后,原始训练数据的值会改,因为是在原始数据上进行降维计算。
  • (3) whiten
    类型:bool,缺省时默认为False。
    意义:白化,使得每个特征具有相同的方差。
#主成分分析 降维
import pandas as pd

#参数初始化
inputfile = '../data/principal_component.xls'
outputfile = '../tmp/dimention_reducted.xls' #降维后的数据

data = pd.read_excel(inputfile, header = None) #读入数据

from sklearn.decomposition import PCA

pca = PCA()
pca.fit(data)
print("模型的各个特征向量:")
print(pca.components_) #返回模型的各个特征向量
print("各个成分各自的方差百分比:")
print(pca.explained_variance_ratio_ )#返回各个成分各自的方差百分比


从上面的结果可以得到特征方程 有7个特征根、对应的7个单位特征向量以及各个成分各自的方差百分比(也称为贡献率)。其中,方差百分比越大,说明向量的权重越大。
当选取前4个主成分时,累计贡献率已达到97.37%,说明选取前3个主成分进行计算已经相当不错了,因此可以重新建立PCA模型,设置n_components = 3,计算出成分结果。

pea = PCA(3)
pea.fit(data)
low_d = pea. transform (data)  #用它来降低维度
# pd.DataFrame (low_d) . to_excel (outputfile)  #保存结果
# pea.inverse_transform (low_d)  #必要时可inverse_transform()函数来复原数据
low_d

原始数据从8维被降维到了3维,关系式由公式确定,同时这3维数据占了原始数据95%以上的信息。

数值规约

数值规约指通过选择替代的、较小的数据来减少数据量,包括有参数方法和无参数方法两类。
有参数方法是使用一个模型来评估数据,只需存放参数,而不需要存放实际数据,例如回归(线
性回归和多元回归)和对数线性模型(近似离散属性集中的多维概率分布)。无参数方法就需要
存放实际数据,例如直方图、聚类、抽样(采样)。

  • (1)直方图
    直方图使用分箱来近似数据分布,是一种流行的数据规约形式。属性 A 的直方图将 A 的数
    据分布划分为不相交的子集或桶。如果每个桶只代表单个属性值/频率对,则该桶称为 单桶。通
    常,桶表示给定属性的一个连续区间。
  • (2)聚类
    聚类技术将数据元组(即记录,数据表中的一行)视为对象。它将对象划分为簇,使一 个
    簇中的对象相互“相似”,而与其他簇中的对象“相异”。在数据规约中,用数据的簇替换 实
    际数据。该技术的有效性依赖于簇的定义是否符合数据的分布性质。
  • (3)抽样
    抽样也是一种数据规约技术,它用比原始数据小得多的随机样本(子集)表示原始数据 集。
    假定原始数据集。包含 N 个元组,可以釆用抽样方法对。进行抽样。下面介绍常用的 抽样方法。
    • s 个样本无放回简单随机抽样:从。的 N 个元组中抽取 s 个样本(s < AT),其中。中任 意元组被抽取的概率均为 1/N,即所有元组的抽取是等可能的。
    • s 个样本有放回简单随机抽样:该方法类似于无放回简单随机抽样,不同在于每次一个元组从。中抽取后,记录它,然后放回原处。
    • 聚类抽样:如果 D 中的元组分组放入 M 个互不相交的“簇”,则可以得到 s 个簇的简 单随机抽样,其中 s<M。例如,数据库中元组通常一次检索一页,这样每页就可以视为一 个簇。
    • 分层抽样:如果 D 划分成互不相交的部分,称作层,则通过对每一层的简单随机抽样就 可以得到 D 的分层样本。例如,可以得到关于顾客数据的一个分层样本,按照顾客的每个年 龄组创建分层。

用于数据规约时,抽样最常用来估计聚集査询的结果。在指定的误差范围内,可以确定 (使用中心极限定理)估计一个给定的函数所需的样本大小。通常样本的大小 s 相对于 N 非常 小。而通过简单地增加样本大小,这样的集合可以进一步求精。

  • (4)参数回归
    简单线性模型和对数线性模型可以用来近似描述给定的数据。(简单)线性模型对数据建模,
    使之拟合一条直线。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,376评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,126评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,966评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,432评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,519评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,792评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,933评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,701评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,143评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,488评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,626评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,292评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,896评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,494评论 2 348