《第5章 数据预处理教学课件R语言数据分析与挖掘.pptx》由会员分享,可在线阅读,更多相关《第5章 数据预处理教学课件R语言数据分析与挖掘.pptx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5章 数据预处理教学课件R语言数据分析与挖掘目录PAGE数据抽样01202数据清洗03数据变换04数据哑变量处理01PAGE数据抽样301PAGE4数据抽样的必要性“抽样”对于数据分析和挖掘来说是一种常见的前期数据处理技术。对于小概率事件、稀有事件的类失衡情况,即在数据中可能会存在某个或某些类别下的样本数远大于另一些类别下的样本数目。如果不对数据进行处理就建模,此时建立的分类器会倾向于预测数量较多的一类,显然该分类器是无效的,并且这种无效是由于训练集中类别不均衡而导致的。克服类失衡问题常用的技术有以下两种:偏置学习过程的方法,它应用特定的对少数类更敏感的评价指标。用抽样方法来操作训练数据,从
2、而改变类的分布。有多种抽样方法用于改变数据集中的类失衡,常用的有以下两种:欠采样法,它从多数类中选择小部分案例,并把它们和少数类样本一起组成一个相对平衡的数据集。过采样法,它采用另外的工作模式,使用某些进程来复制少数类样本。4R语言数据分析与挖掘(微课版)PAGE5类失衡处理方法:SMOTE有一种系统构造人工数据样本的方法SMOTE(Synthetic Minority Over-sampling Technique)。在R语言中,DMwR扩展包中的SMOTE()函数可以实现SMOTE方法。该函数可以实现过采样或欠采样的SMOTE方法。该函数常用参数有三个:perc.over:过采样时,生成少
3、数类的新样本个数;;k:过采样中使用K近邻算法生成少数类样本时的K值,默认是5;perc.under:欠采样时,对应每个生成的少数类样本,选择原始数据多数类样本的个数。例如,当perc.over=500表示对原始数据集中的每个少数样本,都将生成5个新的少数样本;perc.under=80表示从原始数据集中选择的多数类的样本数据集中新生成少数样本的80%。5R语言数据分析与挖掘(微课版)PAGE6数据随机抽样:sample()函数sample()函数基本表达形式为:sample(x,size,replace=FALSE,prob=NULL)其中x是数值型向量,size是抽样个数,replace表
4、示是否有放回抽样,默认FALSE是无放回抽样,TURE是有放回抽样。6R语言数据分析与挖掘(微课版)set.seed(1234)(x (a (b#当size大于x的长度 sample(x,15,replace=FALSE)Error in sample.int(length(x),size,replace,prob):cannot take a sample larger than the population when replace=FALSE sample(x,15,replace=TRUE)1 5 8 4 8 3 4 10 5 2 8 4 3 7 9 3PAGE7数据等比抽样:crea
5、teDataPartition函数通过sample()函数虽然能实现对数据集按照某个变量的类别进行等比例抽样,但是当类别多的时候代码就比较繁琐。现在给大家介绍caret扩展包中的createDataPartition()函数,可以快速实现数据按照因子变量的类别进行快速等比例抽样。其函数基本表达形式为:createDataPartition(y,times=1,p=0.5,list=TRUE,groups=min(5,length(y)其中y是一个向量,times表示需要进行抽样的次数,p表示需要从数据中抽取的样本比例,list表示结果是否为列表形式,默认为TRUE,groups表示如果输出变量
6、为数值型数据,则默认按分位数分组进行取样。7R语言数据分析与挖掘(微课版)PAGE8用于交叉验证的样本抽样caret扩展包中的createFolds()函数和createMultiFolds()函数。createFolds()函数的基本形式为:createFolds(y,k=10,list=TRUE,returnTrain=FALSE)其中y是我们要依据分类的变量;k指定k折交叉验证的样本,默认为10,每份的样本量为总量/k;list是否以列表或矩阵的形式存储随机抽取的索引号,默认为TRUE;returnTrain是否返回抽样的真实值,默认返回样本的索引值。createMultiFolds函数
7、的基本表达式为:createMultiFolds(y,k=10,times=5)其中k指定k折交叉验证的样本,默认为10,每份的样本量为总量/k;times指定抽样组数,默认为5组(每组中都有10折抽样)。8R语言数据分析与挖掘(微课版)PAGE数据清洗902PAGE10缺失值处理及判断:识别缺失值R语言中缺失值以NA(Not Available)表示,判断数据中是否存在缺失值最基本的函数是is.na(),它可以应用于向量、数据框等多种对象,返回结果为逻辑值。当元素为缺失值时,返回TRUE,当元素有真实值时,返回FALSE。例如,令y#加载caret包到内存 library(caret)#查看
8、customers的数据结构 str(customers)data.frame:5 obs.of 4 variables:$id :num 10 20 30 40 50$gender:Factor w/2 levels female,male:2 1 1 2 1$mood :Factor w/2 levels happy,sad:1 2 1 2 1$outcome:num 1 1 0 0 0#利用dummyVars函数对customers数据进行哑变量处理 dmy#对自身变量进行预测,并转换成data.frame格式 trsf-data.frame(predict(dmy,newdata=customers)