数据探索 —— 数据预处理 3

数据规约

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

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

属性规约

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

属性规约常用方法

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

2)将数据矩阵按列进行中心标准化。为了方便,将标准化后的数据矩阵仍然记为X。
3)求相关系数矩阵R,R=(rij)p×p,rij的定义为:

其中,rij=rji,rii=1。
4)求R的特征方程det(R-λE)=0的特征根λ1≥λ2≥λp>0。
5)确定主成分个数m:

α根据实际问题确定,一般取80%。
6)计算m个相应的单位特征向量:

7)计算主成分:

在Python中,主成分分析的函数位于Scikit-Learn下:

sklearn.decomposition.PCA(n_components = None, copy = True, whiten = False)

参数说明:
(1)n_components
意义:PCA算法中所要保留的主成分个数n,也即保留下来的特征个数n。
类型:int或者string,缺省时默认为None,所有成分被保留。赋值为int,比如n_components=1,将把原始数据降到一个维度。赋值为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)
pca.components_  # 返回模型的各个特征向量
pca.explained_variance_ratio_  # 返回各个成分各自的方差百分比

运行代码,得到如下结果:




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

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

降维结果如下:



原始数据从8维被降维到了3维,同时这3维数据占了原始数据95%以上的信息。

数据规约

数据规约指通过选择替代的、较小的数据来减少数据量,包括有参数方法和无参数方法两类。有参数方法是使用一个模型来评估数据,只需存放参数,而不需要存放实际数据,例如回归(线性回归和多元回归)和对数线性模型(近似离散属性集中的多维概率分布)。无参数方法就需要存放实际数据,例如直方图、聚类、抽样(采样)。
(1)直方图
直方图使用分箱来近似数据分布,是一种流行的数据规约形式。属性A的直方图将A的数据分布划分为不相交的子集或桶。如果每个桶只代表单个属性值/频率对,则该桶称为单桶。通常,桶表示给定属性的一个连续区间。
(2)聚类
聚类技术将数据元组(即记录,数据表中的一行)视为对象。它将对象划分为簇,使一个簇的对象相互“相似”,而与其他簇中的对象“相异”。在数据规约中,用数据的簇替换实际数据。该技术的有效性依赖于簇的定义是否符合数据的分布性质。
(3)抽样
抽样也是一种数据规约技术,它用比原始数据小得多的随机样本(子集)表示原始数据集。假定原始数据集D包含N个元组,可以采用抽样方法对D进行抽样。常用的抽样方法:
s个样本无放回简单随机抽样:从D的N个元组中抽取s个样本(s<N),其中D中任意元组被抽取的概率均为1/N,即所有元组的抽取是等可能的。
s个样本有放回简单随机抽样:该方法类似于无放回简单随机抽样,不同在于每次一个元组从D中抽取后,记录它,然后放回原处。
聚类抽样:如果D中的元组分组放入M个互不相交的“簇”,则可以得到s个簇的简单随机抽样,其中s<M。例如,数据库中元组通常一次检索一页,这样每页就可以视为一个簇。
分层抽样:如果D划分成互不相交的部分,称作层,则通过对每一层的简单随机抽样就可以得到D的分层样本。例如,可以得到关于顾客数据的一个分层样本,按照顾客的每个年龄组创建分层。
用于数据规约时,抽样最常用来估计聚集查询的结果。在制定的误差范围内,可以确定(使用中心极限定理)估计一个给定的函数所需的样本大小。通常样本的大小s相对于N非常小。而通过简单地增加样本大小,这样的集合可以进一步求精。
(4)参数回归
简单线性模型和对数线性模型可以用来近似描述给定的数据。(简单)线性模型对数据建模,使之拟合一条直线。一下介绍一个简单线性模型的例子,对对数线性模型只进行简单介绍。
把点对(2,5),(3,7),(4,9),(5,12),(6,11),(7,15),(8,18),(9,19),(11,22),(12,25),(13,24),(15,30),(17,35)规约成线性函数y=wx+b。即拟合函数y=2x+1.3线上对应的点可以近似看作已知点。

将已知点规约成线性函数y=wx+b

其中,y的方差是常量13.44。在数据挖掘中,xy是数值属性。系数2和1.3(称作回归系数)分别位直线的斜率和y轴截距。系数可以用最小二乘方法求解,它使数据的实际直线与估计直线之间的误差最小化。多元线性回归是(简单)线性回归的扩充,运行响应变量y建模为两个或多个预测变量的线性函数。
对线性模型:用来描述期望频数与协变量(指因变量有线性相关并在探讨自变量与因变量关系时通过统计技术加以控制的变量)之间的关系。考虑期望频数m取值在0到正无穷之间,故需要进行对数变换为f(m)=lnm,使它的取值在-∞与∞之间。
对数线性模型:

对数线性模型一般用来近似离散的多维概率分布。在一个n元组的集合中,每个元组可以看作是n维空间中的一个点。可以使用对数线性模型基于维组合的一个较小子集,估计离散化的属性集的多维空间中每个点的概率,这使得高位数据空间可以由较低维空间构造。因此,对数线性模型也可以用于维规约(由于低维空间的点通常比原来的数据点占据较少的空间)和数据光滑(因为与较高维空间的估计相比,较低维空间的聚集估计较少受抽样方法影响)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念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

推荐阅读更多精彩内容