数据挖掘与数据分析:基于R语言- 课件 第六章-随机森林_第1页
数据挖掘与数据分析:基于R语言- 课件 第六章-随机森林_第2页
数据挖掘与数据分析:基于R语言- 课件 第六章-随机森林_第3页
数据挖掘与数据分析:基于R语言- 课件 第六章-随机森林_第4页
数据挖掘与数据分析:基于R语言- 课件 第六章-随机森林_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DataMiningandDataAnalysiswithR数据挖掘与数据分析:基于R语言第六章随机森林随机森林方法原理01模型理解02R语言编程03章节内容6.1随机森林方法原理应用背景介绍随机森林作为一种经典的集成学习方法,在许多任务上均有领先于一般单一模型的性能。所谓集成学习方法就是模拟人类的合作行为,通过多个模型对同一任务进行具体的操作(比如分类或回归)。随机森林中的基础模型是熟知的决策树模型,通过各个决策树对任务进行综合评估最终得出结果。bagging介绍由于随机森林是基于bagging的一种集成学习方法,因此在对随机森林方法介绍之前,首先探讨集成学习的相关内容。作为并行式集成学习方法的典型,bagging的特点便是采用随机采样的方法,让各个“基学习器”随机地学习整体样本中采样出来的一部分,进而综合给出最终的输出。

bagging介绍随机森林

6.2模型理解随机森林作为一种用于分类和回归的集成学习方法,其目标是通过多个CART决策树共同从数据特征推断出简单决策规则,从而达到预测目标变量类别或值的目的。一般而言,随机森林中的CART决策树的深度越深,决策规则越复杂,模型适用的范围越广。随机森林模型的优点随机森林的训练可以高度并行化,这对于大数据时代的大样本训练具有很大的优势,可以大大提升训练速度。由于随机森林可以随机选择决策树节点划分特征,这在样本特征维度很高的时候,仍然能高效地训练模型。随机森林在训练后,可以给出各个特征对于输出的重要性,从而可以针对不同的问题确定出重要特征和非重要特征。由于随机森林采用了随机采样,训练出的模型的方差较小,从而具有更强的泛化能力。随机森林模型的优缺点随机森林原理简单,容易实现且计算开销小,这对于大数据集而言,具有十分明显的优势。随机森林模型对部分特征缺失不敏感,因此,允许原始数据集中存在一定的数据缺失,具有较强的鲁棒性。随机森林模型的缺点随机森林模型在某些噪音比较大的数据集上,容易陷入过拟合,使得模型在新的数据集上的预测或分类性能表现差。随机森林模型对于取值划分比较多的特征对应的数据集不易产生令人满意的模型拟合效果。随机森林模型的优缺点

随机森林模型应用

随机森林模型应用6.3R语言编程本节利用R语言将随机森林建模的整个过程进行实践。对于一个新的问题,随机森林建模主要包括四个部分:数据导入、数据预处理、随机森林模型训练、随机森林模型验证。数据导入首先导入读取数据的相关库,并利用fread函数读取原始数据集PurchasePredictionDataset.csv(下载链接:/Apress/machine-learning-using-r/blob/master/Dataset/Chapter%206.zip)。该数据集共包含12个属性信息,具体的属性信息可以通过str(Data_Purchase)进行查看:#相关库导入library(data.table)library(C50)library(splitstackshape)library(rattle)library(rpart.plot)library(data.table)library(knitr)#读取数据集Data_Purchase<-fread("./PurchasePredictionDataset.csv",header=T,verbose=FALSE,showProgress=FALSE)str(Data_Purchase)#查看数据信息table(Data_Purchase$ProductChoice)数据预处理首先,选定了部分相关列作为用于随机森林模型训练的属性,包括用户ID、用户选择的产品类型、用户的会员积分、收入类别、顾客倾向性和产品最终购买时间。随机森林对于缺失值是敏感的,因此对数据集中的缺失值实行了删除操作。#获取相关数据集的相关列Data_Purchase<-Data_Purchase[,.(CUSTOMER_ID,ProductChoice,MembershipPoints,IncomeClass,CustomerPropensity,LastPurchaseDuration)]#删除缺失值Data_Purchase<-na.omit(Data_Purchase)Data_Purchase$CUSTOMER_ID<-as.character(Data_Purchase$CUSTOMER_ID)#分层抽样Data_Purchase_Model<-stratified(Data_Purchase,group=c("ProductChoice"),size=10000,replace=FALSE)print("TheDistributionofequalclassesisasbelow")table(Data_Purchase_Model$ProductChoice)预处理结束后,还需要对该数据集进行划分,形成训练数据集和测试数据集两部分。其中训练数据集用于对随机森林进行训练,而测试数据集则用于评估随机森林的泛化能力。Data_Purchase_Model$ProductChoice<-as.factor(Data_Purchase_Model$ProductChoice)Data_Purchase_Model$IncomeClass<-as.factor(Data_Purchase_Model$IncomeClass)Data_Purchase_Model$CustomerPropensity<-as.factor(Data_Purchase_Model$CustomerPropensity)#在训练数据(Set_1)上建立随机森林,然后测试数据(Set_2)将被用于性能测试set.seed(917)train<-Data_Purchase_Model[sample(nrow(Data_Purchase_Model),size=nrow(Data_Purchase_Model)*(0.7),replace=FALSE,prob=NULL),]train<-as.data.frame(train)test<-Data_Purchase_Model[!(Data_Purchase_Model$CUSTOMER_ID%in%train$CUSTOMER_ID),]print(test)数据预处理随机森林模型训练准备好训练数据集和测试数据集后,接下来便利用随机森林模型在训练数据集上进行训练,学习数据中蕴含的规则。模型训练代码如下:#导入相关库library(gmodels)library(ggplot2)library(lattice)library(caret)control<-trainControl(method="repeatedcv",number=5,repeats=2)#RandomForestset.seed(100)rfModel<-train(ProductChoice~CustomerPropensity+LastPurchaseDuration+MembershipPoints,data=train,method="rf",trControl=control)随机森林模型验证为了评估随机森林模型,需要对模型在训练数据集上的效果进行验证。predict函数的输入为原始的测试数据集特征,输出为对应的标签,即ProductChoice的预测值,接着利用CrossTable函数对ProductChoice的预测值和真实值进行分析,便可以得到整个随机森林模型的评估结果。具体结果如图所示:purchase_pred_test<-predict(rfModel,test)CrossTable(test$ProductChoice,purchase_pred_test,prop.chisq=FALSE,prop.c=FALSE,prop

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论