数据挖掘与数据分析:基于R语言- 课件 第四章 逻辑回归_第1页
数据挖掘与数据分析:基于R语言- 课件 第四章 逻辑回归_第2页
数据挖掘与数据分析:基于R语言- 课件 第四章 逻辑回归_第3页
数据挖掘与数据分析:基于R语言- 课件 第四章 逻辑回归_第4页
数据挖掘与数据分析:基于R语言- 课件 第四章 逻辑回归_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

DataMiningandDataAnalysiswithR数据挖掘与数据分析:基于R语言第四章逻辑回归逻辑回归原理01逻辑回归算法示例02模型理解03R编程04章节内容4.1逻辑回归原理图4-1逻辑函数对应的函数图像

逻辑回归模型简介

逻辑回归函数

逻辑回归推导

逻辑回归推导

4.2逻辑回归算法示例现在已知两套房子的面积和朝向以及房子好坏的信息,如下表所示。根据这些信息,利用逻辑回归模型实现房子好坏的分类。房屋面积房屋朝向房屋好坏20011120204.2逻辑回归算法示例1200111202

4.2逻辑回归算法示例

4.2逻辑回归算法示例第二轮迭代:

4.2逻辑回归算法示例

4.3模型理解逻辑回归模型的优点逻辑回归的基础是线性回归,对于问题的抽象相对容易。逻辑回归使用广泛,有着许多开源的资料。比如:逻辑回归在R、Python、Java等众多编程语言方面均有相应的集成。数学角度讲,逻辑回归模型的参数估计很简单,使用简单的梯度下降方法便可以对模型的参数进行估计,并且可以保证找到最优参数。逻辑回归模型的参数估计可以通过可靠的统计理论进行置信区间的检验,这相比于一些神经网络模型具有更好的可信度和解释性。逻辑回归模型简单易懂,且易于拓展,从而适应于不同的场景和任务。逻辑回归模型不仅是一个分类模型,而且还提供概率。这与只能提供最终分类结果的模型相比,是一个很大的优势,通过概率可以更加清楚地知道某一样本被划分为某一类别的量化信息。4.3模型理解逻辑回归模型的缺点逻辑回归模型在预测性能方面通常不是很好,因为可以学习的关系非常有限,并且通常简化了现实场景的复杂程度。逻辑回归模型的解释相比于线性回归更困难,逻辑回归可能会受到完全分离样本的影响。4.4R编程本节利用R语言将逻辑回归建模的整个过程进行实践。对于一个新的问题,逻辑回归建模主要包括四个部分:数据导入、数据预处理、逻辑回归模型训练、逻辑回归模型验证。实例中使用R语言C50包中自带数据集churnTrain和churnTest进行建模过程的演示。数据集中共包含19个变量,其中“是否流失”、“州”、“国际长途计划”、“信箱语言计划”列作为因子型变量,其余变量均为数值型变量。区域编码(area_code)变量对于整个模型的构建过程没有实际意义,因此后续对该变量进行排除,实现数据的预处理。数据导入install.packages("C50")

#导入相关库library(C50)

#导入自带的数据集data(churn)data(mlc_churn)#训练数据集train<-churnTrain#测试数据集test<-churnTeststr(train)输出:该数据集是关于电信行业客户流失的真实数据。数据集导入过程代码如下:属性名称属性解释属性示例数据类型state用户所属州AK字符串account_length用户对应的账号长度128整型international_plan用户对应的国际长途计划yes/no(1/2)布尔类型voice_mail_plan用户对应的信箱语音计划yes/no(1/2)布尔类型number_vmail_messages用户对用的邮件信息25整型total_day_minutes用户白天使用时长265整型total_day_calls用户白天呼叫数110整型total_day_charge用户白天转接数45.1浮点型total_eve_minutes用户傍晚使用时长197.4浮点型变量解释如下:数据导入属性名称属性解释属性示例数据类型total_eve_calls用户傍晚呼叫数99整型total_eve_charge用户傍晚转接数16.78浮点型total_night_minutes用户夜晚使用时长245整型total_night_calls用户夜晚呼叫数91整型total_night_charge用户夜晚转接数11.01浮点型total_intl_minutes用户国际长途使用时长10整型total_intl_calls用户国际长途呼叫数3整型total_intl_charge用户国际长途转接数2.7浮点型number_customer_service_calls用户服务电话数1整型churn用户是否流失yes/no(1/2)布尔型变量解释续表:数据导入数据预处理#剔除区域编码(area_code)列train<-train[,-3]test<-test[,-3]train$churn<-factor(train$churn,levels=c("no","yes"),order=TRUE)test$churn<-factor(test$churn,,levels=c("no","yes"),order=TRUE)对数据进行预处理用户流失数据集中的区域编码(area_code)对于整个模型的构建过程没有实际意义,因此对其进行删除,代码如下:由于整个模型更关心的是用户流失整个结果(churn=yes),所以对churn列的元素进行排序,代码如下:逻辑回归模型训练model<-glm(churn~.,data=train,family="binomial")summary(model)利用训练数据集对逻辑回归模型进行训练逻辑回归模型构建的过程中,以除churn外的其他变量为自变量,以churn为因变量。即该逻辑回归模型旨在通过除churn外的19个特征,对churn进行分类。接着利用summary函数对逻辑回归模型的训练结果进行查看,代码如下:逻辑回归模型训练对逻辑回归模型的训练结果如下图所示:通过实验结果可以看出许多变量对于模型并不显著(“*”越多表示显著性越高,没有“*”则表示不显著利用summary函数对逻辑回归模型的训练结果进行查看逻辑回归模型训练#step函数用于变量选择model2<-step(object=model,trace=0)summary(model2)采用逐步回归法剔除那些不显著的变量逐步回归法是指通过剔除无关特征和一些高度相关的特征,降低变量间多重共线程度的过程。逐步回归法的具体代码实现如下:续:逻辑回归模型训练逐步回归法的代码运行结果如下:根据结果可知,所有变量的P值均小于0.05,通过了显著性检验。逻辑回归模型训练#卡方检验anova(object=model2,test="Chisq")对模型进行卡方检验为了保证模型整体的正确性和合理性,我们在确保模型的各变量通过显著性检验的同时还需确保整个模型是显著的,因此下面对模型进行卡方检验,代码如下:卡方检验的结果如右图所示,可知变量从第一个到最后一个逐渐加入模型的过程中,模型均能够通过显著性检验,说明了当前模型的适用性和各个特征选择的合理性。逻辑回归模型验证prob<-predict(object=model2,newdata=test,type="response")pred<-ifelse(prob>=0.5,"yes","no")pred<-factor(pred,levels=c("no","yes"),order=TRUE)f<-table(test$churn,pred)F输出:为了评估逻辑回归模型的性能,我们将训练好的模型在测试集上进行验证,代码与结果如下所示:符号表示符号解释TP实际为正样本,且判断为正样本的样本数量FP实际为负样本,但判断为正样本的样本数量TN实际为负样本,且判断为负样本的样本数量FN实际为正样本,但判断为负样本的样本数量逻辑回归模型验证表4-4符号解释表评估指标计算公式中的TP、FP、TN、FN的解释如下表所示:逻辑回归模型验证

逻辑回归模型验证

预测为负类预测为正类实际为负类TN=1408FP=182实际为正类FN=35TP=42表4-5逻辑回归模型在测试集上的混淆矩阵结果表根据下表逻辑回归模型在测试集上的混淆矩阵结果,可得出以下几点结论:模型对非流失客户(no)的预测准确率为1408/(1408+35)=97.6%,相对较为准确;模型对流失客户(yes)的预测准

温馨提示

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

评论

0/150

提交评论