大数据探索性分析版课件第3章.pptx
《大数据探索性分析版课件第3章.pptx》由会员分享,可在线阅读,更多相关《大数据探索性分析版课件第3章.pptx(75页珍藏版)》请在三一办公上搜索。
1、第三章 大数据的数据预处理,第三章 大数据的数据预处理,本章的主要内容,第1节 整齐数据第2节 数据的管理与清洗第3节 数据的变换第4节 缺失值的处理第5节 异常点的检测第6节 变量选择第7节 数据预处理的综合应用,本章的主要内容第1节 整齐数据,第1节 整齐数据,第1节 整齐数据,整齐数据,整齐数据Tidy data(Wickham,2014)是一类很容易整理、建模和可视化的数据类型。有其特定规范的数据结构:每个变量是一列,每个观测是一行,每个类型的观测单元构成一个表。表3-1的列名其实是income这个变量的取值,而不应该是变量。某些情况下这种格式非常有用,比如列联表分析,但是对于一些做图
2、和分析算法来说并不理想。,整齐数据整齐数据Tidy data(Wickham,2014,整齐数据,这个数据实际上有三个变量:religion,income和frequency。为了得到tidy数据,我们需要将列变成行,使每一行观测都对应三个变量。,整齐数据这个数据实际上有三个变量:religion,inco,示例,函数:reshape2 包 melt 函数melt(data, id.vars, measure.vars, variable.name = variable, ., na.rm = FALSE, value.name = value, factorsAsStrings = TRUE
3、),tb - read.csv(file = tb.csv,header = TRUE, stringsAsFactors = FALSE)tail(tb) #查看数据的最后几列,问题:1.列名m04,m514并不是真正的变量,而是病人性别与年龄的取值。2.并且两个变量性别(gender)和年龄(age)是混在一起的。,这不是一个tidy data!,示例函数:reshape2 包 melt 函数tb - r,示例,解决方案:第一步:library(reshape2)tb_tidy - melt(data = tb, id = c(iso2, year), variable.name = ge
4、nder_age,value.name = cases, na.rm = TRUE) #其中,标识变量是iso和year,变换之后的新变量命名为“gender_age”head(tb_tidy),iso2 year gender_age cases 16 AD 2005 m04 0 17 AD 2006 m04 0 19 AD 2008 m04 0 43 AE 2006 m04 0 44 AE 2007 m04 0 45 AE 2008 m04 0,效果:将原来的m04,m514等一系列变量名转化成新的变量,另建一个变量对应原来变量的取值。,示例解决方案: iso2 year gender_a
5、g,示例,解决方案:第二步:将年龄与性别变量分离开: library(dplyr) library(stringr) tidy = arrange(tb_tidy, iso2, gender_age, year) tidy$sex = str_sub(tidy$gender_age, 1, 1) ageraw=str_sub(tidy$gender_age, 2) agemap= c(04 = 0-4, 514 = 5-14,014 = 0-14, 1524 = 15-24, 2534 = 25-34,3544 = 35-44, 4554 = 45-54, 5564 = 55-64,65= 6
6、5+, u = NA) age=agemapageraw age=unname(age) tidy$age = factor(age) tidy = tidyc(iso2, year, sex, age, cases) head(tidy),iso2 year sex age cases 1 AD 2005 m 0-4 0 2 AD 2006 m 0-4 0 3 AD 2008 m 0-4 0 4 AD 2005 m 5-14 0 5 AD 2006 m 5-14 0 6 AD 2008 m 5-14 0,最终结果:,示例解决方案: iso2 year sex age c,第2节 数据的管理与
7、清洗,第2节 数据的管理与清洗,数据的管理与清洗,数据源:原材料,可视化结果,统计模型:产品,实际工作中,常难以直接获取格式规整,取值明晰的数据集。从互联网的各种途径及数据库中获得的数据(原材料)难以直接使用,它们只有做过清洗加工后才能被利用起来。数据预处理:数据格式调整,变量重命名,变量取值调整,长宽格式数据互化,筛选有用的变量行列,数据的管理与清洗数据源:原材料可视化结果,统计模型:产品实际,数据清洗与管理,数据清洗与管理数据读入、预览清晰地浏览数据结构、变量类型,数,数据读入、预览,示例:数据集介绍: Lending Club 自2007年到2015年成功申请到贷款人的信息(表LoanS
8、tats)和被拒绝的用户信息(表格RejectStats),不同年份的数据分散在不同的excel文件中。任务:将散落在不同excel文件中的数据读入R中并合并为同一个数据集,数据读入、预览示例:,数据读入,thefilesL=dir(pattern=Loan) #读入各数据并将其放在同一个列表(list)LoanList0=lapply(thefilesL,read.csv,stringsAsFactors=FALSE) #按行合并列表中的元素Loan=do.call(rbind,LoanList0thefilesR=dir(pattern=Reject) RejectList0=lapply
9、(thefilesR,read.csv,stringsAsFactors=FALSE)Reject=do.call(rbind,RejectList0)str(Loan),后面省略了52个变量中的几十个变量的输出结果。,问题:数据框太庞大,str()函数的输出结果冗长,并且难以从中辨识出某变量!,数据读入thefilesL=dir(pattern=Lo,数据预览,解决方案:dplyr包中tbl_df()函数,把原数据框打包并创建为更便于打印的数据框。调用tbl对象时,仅有少数观测和自适应窗口宽度的列被显示出来,其余列向量只罗列它们的名称及其类型。,Loan.df=tbl_df(Loan) #生
10、成一个data frame tbl类型Loan.df,数据预览解决方案:dplyr包中tbl_df()函数,把原数,数据预览,输出结果:,可以看到,后面的变量并没有被打印出来,整体的输出结果更加清晰。,数据预览输出结果:可以看到,后面的变量并没有被打印出来,整体,数据预览,其余的数据预览操作:,数据预览其余的数据预览操作:语句功能dim(Loan.df),数据的基本操作,工具:dplyr包。dplyr包常用函数一览:,(1)第一个参数为 data frame 名;(2)接下来的参数是指定函数操作的依据(或条件);(3)通常返回的是一个 data frame。,数据的基本操作工具:dplyr包。
11、函数名称功能filter(,数据的基本操作,选择变量列用指定列参数来选择子数据集,指定方式有:1.列名。2.列序号。能用符号“:”把列名连接,也可以用符号“-”删除变量列。,添加新变量列,Reject.temp=mutate(Reject,dti=as.numeric(sub(%,Debt.To.Income.Ratio)#添加一列名为dti的新变量,它是将变量列Debt.To.Income.Ratio去百分号得到。,Reject.s=select(Reject.temp, Amount.Requested, dti,Risk_Score:State)Reject.s=select(Rejec
12、t.s,-Zip.Code,-Debt.To.Income.Ratio),数据的基本操作添加新变量列Reject.temp=mutat,数据的基本操作,根据变量排序,选择满足条件的观测行,MA_Reject = filter(Reject.s, Risk_Score500&State=MA)#选出risk_score大于500分以及地区在“MA”的观测,arrange(Reject.s,State,Risk_Score,dti,Amount.Requested)#排序优先级从高之低依次为State,Risk_Score,dti,Amount.Requested,按照降序排列。 #排序依据是字符
13、,按字母表的顺序;数字,默认按照从小到大顺序排列。,数据的基本操作根据变量排序选择满足条件的观测行MA_Reje,数据的基本操作,数据的分组汇总汇总的优点:当数据量特别大而原始数据的价值极低时,汇总便于找寻数据内含的规律性,这减少了数据集占用内存以及后续数据分析处理时间。基于分类变量分组汇总得到的统计量具有更小的变异性,如均值,总数等。汇总的缺点:丢失有趣的细节。,数据的基本操作数据的分组汇总,数据的基本操作,工具:group_by()函数、summarise()函数。示例:Loan数据集,summarise(group_by(Loan,grade), #使用分类变量grade分组 ave.a
14、mnt=mean(funded_amnt,na.rm=TRUE), #计算删失数据均值 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()函数、summari,数据的基本操作,工具:group_by()函数、summari
15、se()函数。输出结果:,根据grade变量,将观测划分为七类,并统计了样本量,均值,标准差以及均值的置信区间。,数据的基本操作工具:group_by()函数、summari,第3节 数据的变换,第3节 数据的变换,数据变换,数据清洗后,下一步便是统计建模。然而不同的模型对于原始数据格式有特殊要求。K近邻算法要求使用输入变量必须是经过标准化后的。方差分析要求变量误差服从独立同分布的正态分布。数据变换可以改变样本分布,数据的尺度。,数据变换,对于数值型变量的变换,最小值-最大值规范化(Min- Max Normalization)标准化(Standardization)十进制正规化(Decima
16、l Scaling Normalization)Box-Cox变换,对于数值型变量的变换最小值-最大值规范化(Min-,对于数值型变量的变换,最小值-最大值规范化(Min-Max Normalization)适用场景:很多基于距离的数据挖掘算法,诸如:k-means聚类通常,将数据变换到-1,1 或0,1。是一种线性变换,并不改变做变换变量与其余变量的相关性。,对于数值型变量的变换最小值-最大值规范化(Min-Max N,对于数值型变量的变换,标准化(Standardization)有时也用平均绝对离差。目的:为了使变量间具有可比性变换后的变量,均值为0,方差为1。,对于数值型变量的变换标准化
17、(Standardization),对于数值型变量的变换,十进制正规化(Decimal Scaling Normalization)j的取值是使得 最小整数。这样保证了变化后变量的最大值的绝对值总小于1。,对于数值型变量的变换十进制正规化(Decimal Scali,对于数值型变量的变换,Box-Cox变换 开方根变换,对类似于泊松分布的数据很有用; 对应平方变换; 是倒数变换。应用场景:线性回归分析中当误差项不满足正态性或等方差假定,对于数值型变量的变换Box-Cox变换,代码实例,函数工具:caret包preProcess函数以Loan数据集为例library(caret)#最大值最小值变
18、换trans=preProcess(select(Loan,loan_amnt),method=c(range)#trans Created from 550564 samples and 1 variables Pre-processing: - ignored (0) - re-scaling to 0, 1 (1)transformed=predict(trans,select(Loan,loan_amnt) #执行变换head(transformed,1) #显示变换后数据的前6个数 1 0.13043478 0.05797101 0.05507246 0.27536232 0.072
19、46377 0.13043478,代码实例函数工具:caret包preProcess函数,代码实例,#标准化变换trans=preProcess(select(Loan,loan_amnt),method=c(center, scale) transformed=predict(trans,select(Loan,loan_amnt)head(transformed,1) 1 -1.1378351 -1.4382517 -1.4502684 -0.5370019 -1.3781684 -1.1378351#Box-Cox变换library(e1071) skewness(Loan$annual
20、_inc,na.rm=TRUE) #删除缺失值 1 32.01814Loan.num=select(Loan,loan_amnt,funded_amnt,funded_amnt_inv, installment,annual_inc,dti,total_pymnt)#为了直方图显示效果,去除掉年收入超过40万美元的客户Loan.anin=Loan$annual_inc-which(Loan$annual_inc400000) library(caret)BoxCoxTrans(Loan$annual_inc,na.rm=TRUE),代码实例#标准化变换,代码实例,par(mfrow=c(1,2
21、)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),可以观察得到,原来呈现出明显右偏分布的数据,在取对数变换后,比原来更加对称。,代码实例par(mfrow=c(1,2)可以观察得到,原来,数值型数据的离散化,数值型变量 名义类变量目的:符合模型算法对数据的格式要求。如决策树算法一般要求数据是分类
22、属性。缺点:1.损失信息量,进而损失预测性能。2.研究(Austin and Bruner,2004)表明分类型变量中的 冗余变量容易被认定为有用变量。方法:1.组距分组 : 等距分组,不等距分组2.分位数分组3.秩分组4.均值-标准差分组,数值型数据的离散化 数值型变量 名义类变,第4节 缺失值的处理,第4节 缺失值的处理,数据缺失的原因和分类,数据缺失的原因:数据缺失有多种原因。调查者忘记回答某个问题,或拒绝回答敏感问题,或者感觉疲劳乏味而没有完成一份很长的问卷,也可能是调查者错过了约定或过早从研究中退出,都会产生数据缺失。缺失数据的分类完全随机缺失:当某变量缺失值的发生与其他任何观测变量
23、及该变量的任何观测值均无关。这种模式的缺失值产生是一个随机事件,可以将已观测数据的观测看作是总体的一个简单随机抽样。随机缺失:若某变量出现缺失的概率与其他观测变量相关,但与它自己的未观测值不相关。例如,在一次测试中,如果IQ达不到最低要求的100分,那么将不能参加随后的人格测验。非随机缺失:某变量出现缺失的概率与该变量的观测值有关。例如,公司新录用了一批员工,由于6名员工表现较差在试用期内被辞退,试用期结束后的表现评定中,辞退的6名员工的表现分即为非随机缺失。,数据缺失的原因和分类数据缺失的原因:,缺失数据,完整的缺失数据处理方法包括如下:识别缺失数据;分析导致数据缺失的原因;探索缺失值模式;
24、删除包含缺失值的观测或用合理的数值代替缺失值。,下面将用代码来说明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(Loan$annual_inc) #计算变量列annual_inc的缺失值个数 1 23sum(!
25、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中如何处理缺失值缺失值识别head(is.na(Loan$,R中如何处理缺失值,探索缺失值模式列表显示缺失值工具:mice包md.pattern()函数,library(mice)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 探索 分析 课件
链接地址:https://www.31ppt.com/p-1329584.html