全网最快入门———R语言机器学习实战篇7《logistic回归》

简介: R 语言是为数学研究工作者设计的一种数学编程语言,主要用于统计分析、绘图、数据挖掘。 机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

R 语言是为数学研究工作者设计的一种数学编程语言,主要用于统计分析、绘图、数据挖掘。 机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

这节课讲logistic回归

项目实操——logistic回归

当通过一系列连续型或类别型预测变量来预测而执行结果变量时,logistic回归时一个非常有用的工具。

导入数据集

这里我们以affair包中的数据为例来阐述logistics回归的过程:

先导入数据集,再使用summary()函数做一个简单的统计,之后使用table()函数统计一下出轨的频数,prop.table()函数统计一下频率:

data(Affairs,package="AER")
summary(Affairs)
table(Affairs$affairs)
>prop.table(table(Affairs$affairs))

性别的频数:

prop.table(table(Affairs$gender))


Logistic回归需要结果是二值型的,所以我们将其转为二值型的结果,定义一个ynaffairs(年度出轨次数):

Affairs$ynaffairs[Affairs$affairs>0] <-1>Affairs$ynaffairs[Affairs$affairs==0] <-0


可以用过head()函数查看字段是否添加成功


接下来将这个变量转化为因子:

Affairs$ynaffairs<-factor(Affairs$ynaffairs,levels=c(0,1),labels=c("NO","Yes"))

现在ynaffairs就属于二值型的变量,可以进行logistic回归分析了(这一步去其实是把离散值转化为二项分布)

筛选变量

使用glm()函数进行logistic回归分析(这个数据集的变量比较多,先使用attach()函数将数据集写入内存,使用R的自动补齐功能):

fit<-glm(ynaffairs~gender+age+yearsmarried+children+religiousness+education+occupation+rating,data=Affairs,family=binomial(link=logit))
summary(fit)

根据回归结果,将不显著的变量去除,重新拟合一次:

>fit1<-glm(ynaffairs~age+yearsmarried+religiousness+rating,data=Affairs,family=binomial(link=logit))

由于两个回归结果是嵌套关系,可以使用anova对两者进行方差分析,对于广义线性回归,可以使用卡方检验(名词解释:https://cloud.tencent.com/developer/news/376546):

anova(fit,fit1,test="Chisq")

卡方检验结果值并不显著

证明两次结果差别不大,证明两次拟合的结果一样好,说明性别、教育程度等不显著变量不会显著的提高方程的预测精度。

在logistic回归中,响应变量是y=1的对数优势比,回归系数的含义是,当其他预测变量不变时,一单位预测变量的变化可能引起的响应变量对数优势比的变化,对回归系数取指数,就能回归正常的数值。

预测拟合结果

可以使用predict()函数根据拟合模型的结果(如此处的fit1)对新数据进行验证,首先创建一个包含你感兴趣的预测变量值的虚拟数据集,testdata,这里为了方便,我们都取数据的平均值。

testdata<-data.frame(rating=c(1,2,3,4,5),age=mean(Affairs$age),yearsmarried=mean(Affairs$yearsmarried),religiousness=mean(Affairs$religiousness))
>head(testdata)
testdata$prob<-predict(fit1,newdata=testdata,type="response")
testdata


下面我们再看看年龄的影响,重新生成一个测试数据:

testdata<-data.frame(rating=mean(Affairs$rating),age=seq(17,57,10),yearsmarried=mean(Affairs$yearsmarried),religiousness=mean(Affairs$religiousness))

#这里seq(17,57,10)的意思是,17岁到57岁,以10为间隔生成年龄数,相当于一个以10为差值的年龄等差数列。


testdata$prob<-predict(fit1,newdata=testdata,type="response")
testdata

结果显示,当其他变量的增长,婚外情的概率将从0.31降到0.10,利用这种方法可以研究每一个预测变量对结果概率的影响

相关文章
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习算法入门:从K-means到神经网络
【6月更文挑战第26天】机器学习入门:从K-means到神经网络。文章涵盖了K-means聚类、逻辑回归、决策树和神经网络的基础原理及应用场景。K-means用于数据分组,逻辑回归适用于二分类,决策树通过特征划分做决策,神经网络则在复杂任务如图像和语言处理中大显身手。是初学者的算法导览。
|
16天前
|
机器学习/深度学习 数据采集 算法
机器学习入门的基础知识和步骤
机器学习入门的基础知识和步骤
23 1
|
21天前
|
机器学习/深度学习 数据采集 算法
机器学习入门:算法与数据的探索之旅
【6月更文挑战第13天】本文介绍了机器学习的基础,包括算法和数据处理的重要性。机器学习算法分为监督学习(如线性回归、决策树)、非监督学习(如聚类、降维)和强化学习。数据处理涉及数据清洗、特征工程、数据分割及标准化,是保证模型性能的关键。对于初学者,建议学习基础数学、动手实践、阅读经典资料和参与在线课程与社区讨论。
|
25天前
|
机器学习/深度学习 数据采集 算法
探索Scikit-learn:机器学习库的入门与进阶
本文介绍了Scikit-learn,一个基于Python的开源机器学习库,它依赖于NumPy、SciPy和Matplotlib。Scikit-learn提供分类、回归、聚类和降维等算法,具有简单易用的API。文章涵盖了Scikit-learn的安装、基础使用,例如线性回归示例,并讨论了其主要功能,如数据预处理、模型评估、分类和回归算法、聚类和降维。此外,还涉及进阶应用,如集成学习(随机森林、AdaBoost等)和模型选择工具(交叉验证、网格搜索),帮助用户优化模型性能。总之,Scikit-learn是数据科学家在处理复杂问题时的强大工具。【6月更文挑战第7天】
26 7
|
21天前
|
机器学习/深度学习 数据采集 关系型数据库
机器学习入门:使用Scikit-learn进行实践
机器学习入门:使用Scikit-learn进行实践
266 1
|
22天前
|
机器学习/深度学习 数据采集 算法
机器学习入门:scikit-learn库详解与实战
本文是面向初学者的scikit-learn机器学习指南,介绍了机器学习基础知识,包括监督和无监督学习,并详细讲解了如何使用scikit-learn进行数据预处理、线性回归、逻辑回归、K-means聚类等实战操作。文章还涵盖了模型评估与选择,强调实践对于掌握机器学习的重要性。通过本文,读者将学会使用scikit-learn进行基本的机器学习任务。【6月更文挑战第10天】
60 3
|
21天前
|
机器学习/深度学习 算法 数据挖掘
机器学习新手也能飞:Python+Scikit-learn让你轻松入门!
【6月更文挑战第12天】Python和Scikit-learn降低了机器学习的门槛,让初学者也能轻松涉足。Python以其易用性及丰富的库支持成为机器学习首选语言,而Scikit-learn作为开源机器学习库,提供多种算法和工具。通过简单示例展示了如何使用两者处理鸢尾花数据集进行分类,体现其在实践中的高效便捷。掌握这两者,能助你在机器学习领域不断探索和创新。
|
1天前
|
数据采集 人工智能 监控
阿里云百炼模型训练实战流程:从入门到实战应用
阿里云百炼是AI大模型开发平台,提供一站式服务,涵盖模型训练到部署。用户从注册登录、创建应用开始,选择模型框架,配置资源。接着,进行数据准备、预处理,上传至阿里云OSS。模型训练涉及设置参数、启动训练及调优。训练后,模型导出并部署为API,集成到应用中。平台提供监控工具确保服务性能。通过百炼,开发者能高效地进行大模型实战,开启AI创新。
33 0
|
6天前
|
机器学习/深度学习 算法 数据挖掘
技术心得:机器学习入门篇——感知器
技术心得:机器学习入门篇——感知器
|
2月前
|
机器学习/深度学习 数据采集 算法
2024年机器学习入门,2024年最新字节跳动视频面试一般多久会收到结果
2024年机器学习入门,2024年最新字节跳动视频面试一般多久会收到结果
2024年机器学习入门,2024年最新字节跳动视频面试一般多久会收到结果

热门文章

最新文章