大数据探索性分析版课件第3章.pptx

上传人(卖家):晟晟文业 文档编号:4104927 上传时间:2022-11-11 格式:PPTX 页数:75 大小:1.75MB
下载 相关 举报
大数据探索性分析版课件第3章.pptx_第1页
第1页 / 共75页
大数据探索性分析版课件第3章.pptx_第2页
第2页 / 共75页
大数据探索性分析版课件第3章.pptx_第3页
第3页 / 共75页
大数据探索性分析版课件第3章.pptx_第4页
第4页 / 共75页
大数据探索性分析版课件第3章.pptx_第5页
第5页 / 共75页
点击查看更多>>
资源描述

1、第三章 大数据的数据预处理本章的主要内容 第1节 整齐数据 第2节 数据的管理与清洗 第3节 数据的变换 第4节 缺失值的处理 第5节 异常点的检测 第6节 变量选择 第7节 数据预处理的综合应用第1节 整齐数据整齐数据 整齐数据Tidy data(Wickham,2014)是一类很容易整理、建模和可视化的数据类型。有其特定规范的数据结构:每个变量是一列,每个观测是一行,每个类型的观测单元构成一个表。表3-1的列名其实是income这个变量的取值,而不应该是变量。某些情况下这种格式非常有用,比如列联表分析,但是对于一些做图和分析算法来说并不理想。整齐数据 这个数据实际上有三个变量:religi

2、on,income和frequency。为了得到tidy数据,我们需要将列变成行,使每一行观测都对应三个变量。示例函数:reshape2 包 melt 函数melt(data,id.vars,measure.vars,variable.name=variable,.,na.rm=FALSE,value.name=value,factorsAsStrings=TRUE)tb-read.csv(file=tb.csv,header=TRUE,stringsAsFactors=FALSE)tail(tb)#查看数据的最后几列iso2yearm04m514f3544f5564f65fuZW200761

3、32021390NAZW2008NANA28901741050问题:1.列名m04,m514并不是真正的变量,而是病人性别与年龄的取值。2.并且两个变量性别(gender)和年龄(age)是混在一起的。这不是一个tidy data!示例解决方案:第一步:library(reshape2)tb_tidy 500&State=MA)#选出risk_score大于500分以及地区在“MA”的观测arrange(Reject.s,State,Risk_Score,dti,Amount.Requested)#排序优先级从高之低依次为State,Risk_Score,dti,Amount.Requeste

4、d,按照降序排列。#排序依据是字符,按字母表的顺序;数字,默认按照从小到大顺序排列。数据的基本操作 数据的分组汇总 汇总的优点:当数据量特别大而原始数据的价值极低时,汇总便于找寻数据内含的规律性,这减少了数据集占用内存以及后续数据分析处理时间。基于分类变量分组汇总得到的统计量具有更小的变异性,如均值,总数等。汇总的缺点:丢失有趣的细节。数据的基本操作 工具:group_by()函数、summarise()函数。示例:Loan数据集 summarise(group_by(Loan,grade),#使用分类变量grade分组 ave.amnt=mean(funded_amnt,na.rm=TRUE

5、),#计算删失数据均值 sd=sd(funded_amnt,na.rm=TRUE),#计算删失标准差 n=sum(!is.na(funded_amnt),#计算各组去除缺失值的样本容量 se=sd/sqrt(n),#计算均值标准误 conf.upper=ave.amnt+qt(0.975,n-1)*se,#计算置信区间上下限 conf.lower=ave.amnt-qt(0.975,n-1)*se)数据的基本操作 工具:group_by()函数、summarise()函数。输出结果:根据根据gradegrade变量,将观测划分为七类,并统计了样变量,将观测划分为七类,并统计了样本量,均值,标准

6、差以及均值的置信区间。本量,均值,标准差以及均值的置信区间。第3节 数据的变换数据变换 数据清洗后,下一步便是统计建模。然而不同的模型对于原始数据格式有特殊要求。K近邻算法要求使用输入变量必须是经过标准化后的。方差分析要求变量误差服从独立同分布的正态分布。数据变换可以改变样本分布,数据的尺度。对于数值型变量的变换 最小值-最大值规范化(Min-Max Normalization)标准化(Standardization)十进制正规化(Decimal Scaling Normalization)Box-Cox变换x=minx+Rx-minxmaxx-minxx-x()sxx=x10jx*=xl-1

7、l,l 0logx,l=0对于数值型变量的变换 最小值-最大值规范化(Min-Max Normalization)适用场景:很多基于距离的数据挖掘算法,诸如:k-means聚类 通常,将数据变换到-1,1 或0,1。是一种线性变换,并不改变做变换变量与其余变量的相关性。x=minx+Rx-minxmaxx-minx对于数值型变量的变换 标准化(Standardization)有时也用平均绝对离差。目的:为了使变量间具有可比性 变换后的变量,均值为0,方差为1。x-x()sxsM=xi-xi=1nn对于数值型变量的变换 十进制正规化(Decimal Scaling Normalization)j

8、的取值是使得 最小整数。这样保证了变化后变量的最大值的绝对值总小于1。x=x10jmaxx400000)library(caret)BoxCoxTrans(Loan$annual_inc,na.rm=TRUE)代码实例par(mfrow=c(1,2)hist(Loan.anin,xlab=natural units of annual_inc,main=Histogram:Original Data)hist(log(Loan$annual_inc),xlab=log units of annul_inv,main=Histogram:after log transformation)可以观察

9、得到,原来呈现出明显右偏分布的数据,在取对数变换后,比原来更加对称。数值型数据的离散化数值型数据的离散化 数值型变量 名义类变量目的:符合模型算法对数据的格式要求。如决策树算法一般要求数据是分类属性。缺点:1.损失信息量,进而损失预测性能。2.研究(Austin and Bruner,2004)表明分类型变量中的 冗余变量容易被认定为有用变量。方法:1.组距分组:等距分组,不等距分组 2.分位数分组 3.秩分组 4.均值-标准差分组第4节 缺失值的处理数据缺失的原因和分类 数据缺失的原因:数据缺失有多种原因。调查者忘记回答某个问题,或拒绝回答敏感问题,或者感觉疲劳乏味而没有完成一份很长的问卷,

10、也可能是调查者错过了约定或过早从研究中退出,都会产生数据缺失。缺失数据的分类完全随机缺失:当某变量缺失值的发生与其他任何观测变量及该变量的任何观测值均无关。这种模式的缺失值产生是一个随机事件,可以将已观测数据的观测看作是总体的一个简单随机抽样。随机缺失:若某变量出现缺失的概率与其他观测变量相关,但与它自己的未观测值不相关。例如,在一次测试中,如果IQ达不到最低要求的100分,那么将不能参加随后的人格测验。非随机缺失:某变量出现缺失的概率与该变量的观测值有关。例如,公司新录用了一批员工,由于6名员工表现较差在试用期内被辞退,试用期结束后的表现评定中,辞退的6名员工的表现分即为非随机缺失。缺失数据

11、 完整的缺失数据处理方法包括如下:识别缺失数据;分析导致数据缺失的原因;探索缺失值模式;删除包含缺失值的观测或用合理的数值代替缺失值。下面将用代码来说明下面将用代码来说明R R中如何实现识别缺失数中如何实现识别缺失数据以及如何删除缺失观测或做插补。据以及如何删除缺失观测或做插补。R中如何处理缺失值 缺失值识别 依然以Loan数据集为例head(is.na(Loan$annual_inc),10)#显示变量列annual_inc前10个数据的是否缺失 1 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSEsum(is.na(Lo

12、an$annual_inc)#计算变量列annual_inc的缺失值个数 1 23sum(!is.na(Loan$annual_inc)#计算变量列annual_inc的非缺失值个数 1 550560mean(!complete.cases(Loan)#计算Loan数据中完整行的百分比 1 0.9609686naexist_Loan=Loancomplete.cases(Loan),#取出完整观测nanot_Loan=Loan!complete.cases(Loan),#提取出非完整观测R中如何处理缺失值 探索缺失值模式 列表显示缺失值 工具:mice包md.pattern()函数librar

13、y(mice)md.pattern(Loan.num)R中如何处理缺失值 探索缺失值模式 图形探索缺失值 VIM包aggr()函数从左图上看,变量annual_inc有最大的缺失值个数(23个)。从右图可以看到有19个客户同时缺失全部(7个)变量,而有4个客户仅在变量dti和total_pymnt上存在缺失。library(VIM)aggr(Loan.num,prop=FALSE,numbers=TRUE)缺失数据的处理 处理手段1:删除缺失值 个案删除(行删除法):当缺失数据的记录所占的比例在数据集中非常少(少于10%)时,可以将缺失值直接删除,这样包含一个或多个缺失值的任何一行都会被删除。

14、成对删除法(pairwise deletion):使用所有的可观测数据计算均值和协方差矩阵。如:X的均值估计基于X的所有可观测值。X与Y的协方差和相关系数矩阵的计算则使用X和Y变量均不存在缺失的观测。缺失数据的处理 处理手段2:填补缺失值 填补缺失值具体就是用待研究变量自身已知信息或者与其他变量的关联,基于某种算法规则来补充替代缺失值。可分为:用最高频率值来填补缺失值 回归插补(regression imputation)随机回归插补(stochastic regression imputation)多重插补 K-近邻法缺失数据的处理 用最高频率值来填补缺失值 思想是用一些代表变量分布特征的中

15、间趋势的值。近似分布或者其他对称分布可选用均值,偏态分布可以用中位数。案例:R软件自带airquality数据集data(airquality)mean6=apply(airquality,2,mean,na.rm=TRUE)mean6 Ozone Solar.R Wind Temp Month Day 42.129310 185.931507 9.957516 77.882353 6.993464 15.803922缺失数据的处理airquality$col=c(Mean_imputation,notNA)complete.cases(airquality,1:2)+1#观测是否插补标识ai

16、rqualityis.na(airquality$Ozone),Ozone=mean6Ozoneairqualityis.na(airquality$Solar.R),Solar.R=mean6Solar.R#绘制插补后Ozone的直方图与散点图library(ggplot2)ggplot(airquality,aes(Ozone,fill=col)+geom_histogram(alpha=0.5,position=identity)ggplot(airquality,aes(x=Solar.R,y=Ozone,colour=col)+geom_point(size=4)可以看到数据的分布形

17、态有明显的改变。缺失数据的处理 sd(airquality$Ozone)#插补后的标准误1 28.69337cor(airquality$Ozone,airquality$Solar.R)#插补后变量Ozone和Solar.R的相关系数1 0.3029695data(airquality)#重新加载数据airqualitysd(airquality$Ozone,na.rm=TRUE)#插补后的标准误1 32.98788cor(airquality$Ozone,airquality$Solar.R,use=complete.obs)#插补前变量Ozone和Solar.R的相关系数1 0.3483

18、417均值插补法扭曲了数据的分布,均值插补前后的标准误分别是33和28.7,插补后的标准误明显减少。经过插补后Ozone和Solar.R的相关系数从0.35降到0.3。缺失数据的处理 回归插补(regression imputation)回归插补通过合并其他变量的信息来产生缺失变量的插补值,建立缺失变量和已观测变量建立回归方程,用缺失变量的预测值进行缺失值的插补。当目标变量是定性数据时,考虑通过Logit变换,做Logistic线性回归来建立回归模型。data(airquality)mean6=apply(airquality,2,mean,na.rm=TRUE)mean6 Ozone Sol

19、ar.R Wind Temp Month Day 42.129310 185.931507 9.957516 77.882353 6.993464 15.803922缺失数据的处理library(mice)data(airquality)airquality$col=c(regression_imputation,notNA)as.vector(!is.na(airqualityOzone)+1fit=lm(Ozone Solar.R,data=airquality)a=which(!complete.cases(airquality)airquality$Ozonea=as.vector(p

20、redict(fit,newdata=airquality!complete.cases(airquality),)ggplot(airquality,aes(Ozone,fill=col)+geom_histogram(alpha=0.5,position=identity)ggplot(airquality,aes(x=Solar.R,y=Ozone,colour=col)+geom_point(size=4)缺失数据的处理 随机回归插补(stochastic regression imputation)随机回归插补是对回归插补的改进,在回归预测值上增加了一些随机因素,这样减弱了回归插补对

21、原相关性的影响。该方法的实现步骤是首先估计出回归模型的回归系数和误差项方差,然后根据估计结果生成随机插补值。缺失数据的处理library(mice)imp=mice(airquality,1:2,method=norm.nob,m=1,maxit=1,seed=1)iter imp variable 1 1 Ozone Solar.Rair=complete(imp)air$col=c(imputation,notNA)complete.cases(airquality,1:2)+1ggplot(air,aes(Ozone,fill=col)+geom_histogram(alpha=0.5,

22、position=identity)ggplot(air,aes(x=Solar.R,y=Ozone,colour=col)+geom_point(size=4)缺失数据的处理 多重插补 多重插补是一种基于重复模拟处理缺失值的方法,它使用包含缺失值的原数据集,用蒙特卡罗方法重复多次生成若干组完整数据集,在每一组模拟出来的完整数据集上分别应用标准的统计方法,再通过组合输出结果给出估计的效果,以及引入缺失值后的置信区间。缺失数据的处理library(mice)imp=mice(airquality,seed=1,print=FALSE)fit=with(imp,lm(OzoneWind+Temp+

23、Solar.R)pooled=pool(fit)round(summary(pooled),3),c(1:3,5)est se t Pr(|t|)(Intercept)-64.331 21.535-2.987 0.004 Wind -3.053 0.658-4.641 0.000 Temp 1.612 0.231 6.967 0.000 Solar.R 0.061 0.022 2.731 0.008fit.r=lm(Ozone Wind+Temp+Solar.R,data=airquality)round(coef(summary(fit.r),3)Estimate Std.Error t v

24、alue Pr(|t|)(Intercept)-64.342 23.055 -2.791 0.006 Wind -3.334 0.654 -5.094 0.000 Temp 1.652 0.254 6.516 0.000 Solar.R 0.060 0.023 2.580 0.011缺失数据的处理air=complete(imp)#complete()函数可以观察m个插补数据集中任何一个air$col=c(imputation,notNA)complete.cases(airquality,1:2)+1ggplot(air,aes(Ozone,fill=col)+geom_histogram(

25、alpha=0.5,position=identity)ggplot(air,aes(x=Solar.R,y=Ozone,colour=col)+geom_point(size=4)缺失数据的处理 K-近邻法 K近邻法利用样本观测之间的相关性来填补缺失值。假设两个观测是相似的,其中一个观测在某些变量上有缺失值,那么该缺失值很可能与另外一个观测的值是相似的。缺失数据的处理library(DMwR)data(airquality)air=knnImputation(airquality,k=10)air$col=c(imputation,notNA)complete.cases(airqualit

26、y,1:2)+1ggplot(air,aes(Ozone,fill=col)+geom_histogram(alpha=0.5,position=identity)ggplot(air,aes(x=Solar.R,y=Ozone,colour=col)+geom_point(size=4)第5节 异常点的检测变量选择异常点(又称离群点,outlier)是指既定模型中偏离很大的数据点,或者与绝大多数数据点明显不协调的数据点 在探索性数据分析的阶段我们不假定任何模型,所以我们这里讨论的异常点检测指后者,相对绝大多数点明显不协调的数据点。结构:单变量和多变量的离群点检测 局部离群点因子检测 聚类方法

27、进行离群点检测变量选择 单变量和多变量的离群点检测 箱线图是一种有效快捷检测离群点的方法。set.seed(3147)x=rnorm(100)#生成100个标准正态分布的随机数boxplot.stats(x)$out#检测出来的异常点1-3.315391 2.685922-3.055717 2.571203boxplot(x)#绘制箱线图变量选择 局部离群点因子检测 局部离群因子(LOF)是一种基于密度识别局部离群点的算法(Breuning et al,2000)。使用局部离群因子,这一定义基于局部密度的概念,后者用k个近邻的距离来估计的。将一个点的局部密度与它的k个邻居的比较,如果远小于它的

28、邻居的局部密度,那么LOF值大于1,这一点就是离群点。如图1-*中A点的局部密度要远小于其他点,相对于其邻居,A点位于一个密度更稀疏的区域所以A的LOF值大于1。变量选择 局部离群点因子检测的代码示例library(DMwR)iris2-iris,1:4#删除掉列表量Species,它是一个分类型变量outlier.scores-lofactor(iris2,k=5)#选择k=5作为近邻标准,用于计算LOFoutliers-order(outlier.scores,decreasing=T)1:5#按LOF因子降序排列print(outliers)#显示异常点的编号1 42 107 23 11

29、0 63par(mfrow=c(1,2)plot(density(outlier.scores)#绘制异常点的LOF因子密度函数图labels-1:nrow(iris2)labels-outliers-.biplot(prcomp(iris2),cex=.8,xlabs=labels)空间数据的展示 聚类方法做离群点检测 将数据进行划分,那些没有被划分到任何簇的数据点即为离群点。比如在基于密度的聚类中,如DBSCAN,密度可达的两个对象将被划分到同一组。因此,那些没有被划分到任何一组的对象与其他对象是孤立的,这些孤立的对象被认为是离群点。第6节 变量选择变量选择 数据分析过程中,高维数据是非常

30、棘手的研究对象,特别是在文本挖掘、图像处理和基因数据分析中。过高的维度使得很多方法无法工作或效率降低,这是之所以做变量选择的原因。除此之外,降维能够提高预测精度、减少噪声、方便可视化数据。变量选择的类别:新变量是原变量的组合:主成分分析、因子分析 特征选择:选取原始变量集的子集特征选择的常用方法1.嵌入(Embed):学习算法中本来就包含特征选择的过程,例如决策树一类的分类器,它们在决定分枝点时就会选择最有效的特征来对数据进行划分。2.封装(Wrapper):特征选择过程与训练过程整合在一起,以模型的预测能力作为衡量特征子集的选择标准,例如分类精度,有时也可加入复杂度惩罚因子。多元线性回归中的

31、前向搜索、后向搜索和逐步回归法可以说是封装方法的一种简单实现。封装法可以选择出高质量的子集,但速度会比较慢。3.过滤(Filter):特征选择过程独立于训练过程,以分析特征子集内部特点来预先筛选,与学习器的选择无关。过滤器的评价函数通常包括了相关性、距离、信息增益等。在数据预处理过程中删除那些取值为常数的特征就是过滤方法的一种。过滤法速度快但有可能删除有用的特征。特征选择过滤法 删除方差几乎为零的变量 方差为零的变量,可被看作不含有任何有价值的信息,甚至会扰乱模型构建引起计算上的错误。在文本挖掘的问题中,预测变量(x)表示关键词在文本中的出现次数,某个关键词在531篇文档中,其中523篇文档没

32、有出现这个关键词(x=0),6篇文档中都出现了2次(x=2),一篇文档出现了3次(x=3),一篇文档中出现了1次(x=1)。侦测方法:侦测方法:第一,不同的变量取值(第一,不同的变量取值(unique values)个数与样本量)个数与样本量之之比比低于低于10%。上述的例子中样本量是上述的例子中样本量是531,变量取值变量取值是是4,这个比值是,这个比值是0.75%。第二,频率最高的两个变量值的频数比超过第二,频率最高的两个变量值的频数比超过20。在文档的例子中,。在文档的例子中,频率最高的取值是频率最高的取值是x=0,频数是频数是523,次之是次之是x=2,频数是频数是6,这两个变量,这两

33、个变量值的频数比是值的频数比是523/6=88。可基本认为x是一个零方差变量。特征选择过滤法1.实例:AppliedPredictiveModeling包中的segmentationOriginal细胞分割数据集(Hill e al,2007)。本例中,细胞分割数据的所有数值变量,不存在有任何方差为0的变量,结果较好。library(AppliedPredictiveModeling)data(segmentationOriginal)#加载原始的细胞分隔数据segData-subset(segmentationOriginal,Case=Train)#提取其中标识为“Train”的训练样本d

34、im(segData)#训练样本有1009个观测,119个特征1 1009 119segData-segData,-(1:3)statusColNum-grep(Status,names(segData)segData-segData,-statusColNum#删掉定性变量列,得到本例用的数据nearZeroVar(segData)#返回该数据中方差为零的变量所在的列数1 0特征选择过滤法 去除掉强相关的预测变量 强相关意味着他们具有共同的信息,删掉其中一个不会影响模型的性能,反而能得到更精简和解释性更好的模型。解决方法步骤:计算相关系数矩阵。确定最大的成对相关系数对应的预测变量A和预测变量

35、B。计算变量A与其他所有变量之间的平均绝对值相关系数,对变量B也做同样的计算。比较A与B,删除平均绝对值系数大者。重复以上步骤,直到两两之间绝对值相关系数低于某一特定阈值。特征选择过滤法library(caret)correlations-cor(segData)dim(correlations)correlations1:4,1:4library(corrplot)corrplot(correlations,order=hclust,tl.cex=0.7)#可视化展示相关系数矩阵highCorr-findCorrelation(correlations,cutoff=.75)#根据以上算法筛

36、选出相关性最强的变量filteredSegData library(AppliedPredictiveModeling)data(segmentationOriginal)使用过滤法(filter)和封装法(wrapper),来选择一个最优的预测变量子集。对于linear discriminant analysis和logistic regression,使用嵌套(build-in)的特征选择方法(如R包glmnet和稀疏的LDA)选择变量。对比这些方法,从预测变量个数、预测性能、训练时间来对比不同方法数据预处理的综合应用 运用SBF-LDA、SBF-RF、RFE-LDA、RFE-RF四种方法

37、,均采用十折交叉验证,根据运行结果我们发现:(1)预测变量数量方面,SBF方法由于使用规则对变量进行过滤,得到的变量较多,RFE方法得到的变量较少。(2)预测稳定性方面,四种方法交叉验证的准确率以及方差差距不大,SBF-RF准确率最高,SBF-LDA预测方差较小。(3)训练时间方面,RFE方法运行时间普遍高于SBF方法,这与过滤方法选择过程独立于训练过程有关,但可能删除有用的特征。四种方法中RFE-RF运行时间最长。本章小结 了解一个能用于统计建模的合格的数据框的形式 掌握基本的数据框管理方法以及浏览方法 数据预处理通常不可缺少,取决于模型 缺失值的处理方式有多种,删除还是插补要依据缺失模式来确定 异常值如何被侦测出来 变量维数过高时,需采用一定的方法选择变量降维

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(大数据探索性分析版课件第3章.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|