全网最快入门———R语言机器学习实战篇5

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

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

这节课讲方差分析

项目实操——方差分析(一)

方差分析称为analysis of variance,简称ANOVA,也称为变异数分析,用于两个及两个以上样本均属差别的显著性检验,从广义上来讲,方差分析也属于回归分析的一种,只不过线性回归的因变量一般是连续型变量,而当自变量是因子时,研究关注的重点通常会从预测转向不同组之间差异的比较,这就是方差分析。

方差分析会大量用在科学研究中,例如实验设计时,进行分组比较,例如药物研究实验,处理组与对照组进行比较

方差分析也分为很多种,比如单因素方差分析,双因素方差分析、协方差分析、多元方差分析、多元协方差分析(R语言实战这本书中有详细介绍)

方差分析多采用aov()函数进行分析,aov()函数的用法与lm()函数类似。下表中列出了R中aov()函数的符号用法:

各种方差分析公式的写法:

变量的顺序很重要:

项目实操——方差分析(二)

单因素方差分析:

这里我们使用multcomp包中的cholesterol数据集进行演示,这个数据集是50个患者接受降低胆固醇治疗的五种疗法的数据,50个患者分为10人一组,每天服用20克药物

这个方案只有治疗方案这一个因子,所以被称为单因素方差分析

首先使用

attach()函数

这里使用attach()函数将数据集的列写入内存,这样便可以直接使用数据集的每一页,而不用每次都使用$来引用数据集,也就是表明以下的命令都在数据集下进行。

library(multcomp)
attach(cholesterol)


使用table()计算每一列不同因子的频数

table(trt)



aggregate()函数

接下来使用aggregate()函数进行分组统计数据的平均值:

aggregate(response,by=list(trt),FUN=mean)

进行方差分析:

fit<-aov(response~trt,data=cholesterol)
summary(fit)

方差分析的结果主要看F值和P值,F值越大说明组间差异越显著,这里就是五组之间平均值的差别,而P值只是用来衡量F值,P值越小说明F值越可靠,同样可以使用plot()函数绘制方差的结果:

par(mfrow=c(2,2))
>plot(fit)

下面我们再使用lm()函数做一下方差分析,比较一下二者之间的差别:

因为线性拟合要求预测变量是数值型,所以当lm()函数的预测变量是因子时,就会将一系列与因子水平相对应的数值型对照变量来代替因子,不过P值和F值的意义是不变的

fit.lm<-lm(response~trt,data=cholesterol)
summary(fit.lm)

下面介绍一个单因素协方差的例子,选取multcomp包中的litter数据集,其中weight是这个数据集的响应变量:

首先使用table()函数统计分组情况

table(litter$dose)

然后分组统计一下平均数

aggregate(weight,by=list(dose),FUN=mean)

使用方差分析检验一下组间是否有显著的差异

越基础性的效应越需要放在表达式前面,最好首先是协变量,然后是主效应,以此类推:

summary(fit1)

F值的检验表明,怀孕时间与幼崽出生的体重有关,控制怀孕时间,药物剂量与体重相关,证明药物是有影响的,而不是随机产生的


双因素方差分析案例:

使用内置的toothgrowth数据集:

首先使用xtabs()函数统计频率,结果是一个二维的列联表,再统计一下平均值

xtabs(~supp+dose)

aggregate(len,by=list(supp,dose),FUN=mean)

分组统计平均数的结果显示,剂量越小,二者的差异越明显

使用factor()函数将dose这列的数据转化为因子数据,在进行方差分析:

两个变量的方差分析再加上两个变量还有交互,所以进行方差分析的时候,应该用*号连接两个自变量:

fit<-aov(len~supp*dose,data=ToothGrowth)

使用“HH”包中的interaction.plot()函数可以非常直观的对这个结果进行可视化,而且对任意数据因子涉及的主效应和交互效应都进行了展示:

interaction.plot(dose,supp,len,type="b",col=c('red','blue'),pch=c(16,18),main='interaction between Dose and Supplement Type')

接下来是多元协方差分析的例子:

这里以MASS包中的UScereal数据集进行展示:

前面的预备操作和上面的类似,先使用attach()将数据集写入内存,然后将数据中的非因子型数据转化为因子,再进行方差分析。

attach(UScereal)
shelf<-factor(shelf)
aggregate(cbind(calories,fat,sugars),by=list(shelf),FUN=mean)

#aggregate只能接受一个变量进行分组,所以这里使用cbind()将三个因变量组合成一个数据框

这里有三个因变量,一个自变量

fit<-manova(cbind(calories,fat,sugars)~shelf)
summary(fit)

可以使用summary.aov()函数分别查看每个变量的结果

相关文章
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
Python数据科学实战:从Pandas到机器学习
Python数据科学实战:从Pandas到机器学习
|
2月前
|
机器学习/深度学习 TensorFlow API
机器学习实战:TensorFlow在图像识别中的应用探索
【10月更文挑战第28天】随着深度学习技术的发展,图像识别取得了显著进步。TensorFlow作为Google开源的机器学习框架,凭借其强大的功能和灵活的API,在图像识别任务中广泛应用。本文通过实战案例,探讨TensorFlow在图像识别中的优势与挑战,展示如何使用TensorFlow构建和训练卷积神经网络(CNN),并评估模型的性能。尽管面临学习曲线和资源消耗等挑战,TensorFlow仍展现出广阔的应用前景。
77 5
|
2月前
|
机器学习/深度学习 人工智能 TensorFlow
基于TensorFlow的深度学习模型训练与优化实战
基于TensorFlow的深度学习模型训练与优化实战
106 0
|
3月前
|
机器学习/深度学习 数据采集 人工智能
R语言是一种强大的编程语言,广泛应用于统计分析、数据可视化、机器学习等领域
R语言是一种广泛应用于统计分析、数据可视化及机器学习的强大编程语言。本文为初学者提供了一份使用R语言进行机器学习的入门指南,涵盖R语言简介、安装配置、基本操作、常用机器学习库介绍及实例演示,帮助读者快速掌握R语言在机器学习领域的应用。
131 3
|
3月前
|
机器学习/深度学习 并行计算 数据挖掘
R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域
【10月更文挑战第21天】R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域。本文将介绍R语言中的一些高级编程技巧,包括函数式编程、向量化运算、字符串处理、循环和条件语句、异常处理和性能优化等方面,以帮助读者更好地掌握R语言的编程技巧,提高数据分析的效率。
69 2
|
2月前
|
机器学习/深度学习 数据采集 人工智能
机器学习入门:Python与scikit-learn实战
机器学习入门:Python与scikit-learn实战
71 0
|
3月前
|
机器学习/深度学习 数据挖掘 Serverless
手把手教你全面评估机器学习模型性能:从选择正确评价指标到使用Python与Scikit-learn进行实战演练的详细指南
【10月更文挑战第10天】评估机器学习模型性能是开发流程的关键,涉及准确性、可解释性、运行速度等多方面考量。不同任务(如分类、回归)采用不同评价指标,如准确率、F1分数、MSE等。示例代码展示了使用Scikit-learn库评估逻辑回归模型的过程,包括数据准备、模型训练、性能评估及交叉验证。
153 1
|
3月前
|
数据采集 机器学习/深度学习 TensorFlow
声纹识别实战:从数据采集到模型训练
【10月更文挑战第16天】声纹识别技术通过分析个人的语音特征来验证其身份,具有无接触、便捷的特点。本文将带你从零开始,一步步完成声纹识别系统的构建,包括数据采集、音频预处理、特征提取、模型训练及评估等关键步骤。我们将使用Python语言和相关的科学计算库来进行实践。
475 0
|
8月前
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
259 14
|
8月前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)