全网最快入门———R语言机器学习11

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

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

下面对R语言中频数统计函数解释

函数介绍——频数统计函数

频数在数据分析中是非常重要的一个概念,因为经常需要进行分组统计,比较不同组之间的差异,这些都要涉及到频数的统计。因子是专门用来进行分组的,有因子才能分组,分组之后才能进行频数统计。

首先介绍一下R如何对数据进行分组:

如果一个数据本身就是因子,那么直接就可以进行分组,例如mtcars数据集,里面的“cyl”这一列数据直接就可以作为因子,依据气缸数的不同来进行分组。

用as.factor()函数将这列转换为因子数据:

cylfactors<-as.factor(mtcars$cyl)

然后可以使用split()函数对数据进行分组:

myvars<-dplyr::mutate(myvars,cylfactors1=cylfactors)
split(myvars,myvars$cylfactors1)

还可以使用cut()函数(如果没有明显的分类),cut可以对连续的数据进行切割,使用cut()函数对“mpg”这列进行分割,根据10-50切成10份,就是以步长为10,每十下一切:

cut(myvars$mpg,c(seq(10,50,10)))

此处seq()函数的选项参数是:seq(from=,to=,by=组距)

在分组之后,就可以用table()函数进行频数的统计,table()函数可以计算频数表。

table()函数的使用比较简单:

table(myvars$cylfactors1)

cut()函数的结果也可以使用table()来统计:

table(cut(myvars$mpg,c(seq(10,50,10))))

以上就是频数统计的做法

用频数除以总数就是频率值,R中可以直接使用prop.table()函数计算频率值:

prop.table(table(myvars$cylfactors1))

频率值*100就是百分比的结果。


那么二维的数据框如何进行频率统计呢?

可以使用table()或者是as.table()函数,选项参数输入两个因子就可以计算二维数据的频率了。


这里我们以vcd包中的风湿病数据集(arthritis)进行示范。

Arthritis数据集中的“treatment”、“sex”以及“improved”列都可以作为因子数据,因为它们是类型量,我们取两个作统计:

table(Arthritis$Treatment,Arthritis$Improved)

返回的结果是一个二维的列联表,横向是安慰剂组与治疗组的区分,每一列分别是“没有效果”、“有一些效果”、“很有效果”的区分:

如果变量太多,我们也可以先使用with()或者是attach()函数先加载数据:

with(data=Arthritis,table(Treatment,Improved))

这样就不用反复的书写变量名称


处理二维列联表还可以使用xtabs()函数,这个函数的好处是它的选项参数使用的是formula参数,这样就可以根据需要写成多种公式。

同样是“treatment”以及“improved”列,使用xtabs()函数计算如下:

xtabs(~Treatment+Improved,data=Arthritis)

formula参数是可以省略的,结果和with()函数的一致

对于二维列联表我们还可以使用margin.table()和prop.table()函数分别计算边际频数与比例(边际频率),边际频数的意思就是单独按照行或者列的数据进行处理。

我们将xtabs()的结果保存到变量x中,再使用margin.table()函数统计一下x:

x<-xtabs(~Treatment+Improved,data=Arthritis)
margin.table(x)

返回值只有一个,代表返回的是所有的结果,这里需要给定一个边际值,1或者2,1代表行,2代表列:

margin.table(x,1)

使用prop.table()函数计算比例(边际频率):

prop.table(x,1)

从边际和比例的计算结果可以看出,有治疗组有51%的比例是效果显著的,比边际频数41要大,说明药物是有用的。

再将margin.table()参数换成2,则是按列进行统计

margin.table(x,2)

addmargin()函数可以直接将边际的和添加到频数表中

addmargins(x)

这个函数也可单独计算行、列

addmargins(x,1)

addmargins(x,2)

我们也可以计算三维的列联表,加多一个参数就可以:

xtabs(~Treatment+Improved+Sex,data=Arthritis)


结果看起来有点乱,这时候我们可以使用ftable()函数,它能将结果转换为一个平铺式的列联表

y<-xtabs(~Treatment+Improved+Sex,data=Arthritis)
ftable(y)

相关文章
|
5月前
|
机器学习/深度学习 数据采集 算法
量子机器学习入门:三种数据编码方法对比与应用
在量子机器学习中,数据编码方式决定了量子模型如何理解和处理信息。本文详解角度编码、振幅编码与基础编码三种方法,分析其原理、实现及适用场景,帮助读者选择最适合的编码策略,提升量子模型性能。
447 8
|
机器学习/深度学习 数据采集 算法
深入了解机器学习:从入门到应用
【10月更文挑战第6天】深入了解机器学习:从入门到应用
|
机器学习/深度学习 传感器 运维
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
本文探讨了时间序列分析中数据缺失的问题,并通过实际案例展示了如何利用机器学习技术进行缺失值补充。文章构建了一个模拟的能源生产数据集,采用线性回归和决策树回归两种方法进行缺失值补充,并从统计特征、自相关性、趋势和季节性等多个维度进行了详细评估。结果显示,决策树方法在处理复杂非线性模式和保持数据局部特征方面表现更佳,而线性回归方法则适用于简单的线性趋势数据。文章最后总结了两种方法的优劣,并给出了实际应用建议。
811 7
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
|
机器学习/深度学习 数据采集
机器学习入门——使用Scikit-Learn构建分类器
机器学习入门——使用Scikit-Learn构建分类器
|
机器学习/深度学习 人工智能 自然语言处理
探索AI的奥秘:机器学习入门指南
【10月更文挑战第30天】本篇文章是一份初学者友好的机器学习入门指南,旨在帮助读者理解并开始实践机器学习。我们将介绍机器学习的基本概念,包括监督学习、无监督学习和强化学习等。我们还将提供一些实用的代码示例,以帮助读者更好地理解和应用这些概念。无论你是编程新手,还是有一定经验的开发者,这篇文章都将为你提供一个清晰的机器学习入门路径。
323 2
|
机器学习/深度学习 数据采集 人工智能
R语言是一种强大的编程语言,广泛应用于统计分析、数据可视化、机器学习等领域
R语言是一种广泛应用于统计分析、数据可视化及机器学习的强大编程语言。本文为初学者提供了一份使用R语言进行机器学习的入门指南,涵盖R语言简介、安装配置、基本操作、常用机器学习库介绍及实例演示,帮助读者快速掌握R语言在机器学习领域的应用。
934 3
|
机器学习/深度学习 并行计算 数据挖掘
R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域
【10月更文挑战第21天】R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域。本文将介绍R语言中的一些高级编程技巧,包括函数式编程、向量化运算、字符串处理、循环和条件语句、异常处理和性能优化等方面,以帮助读者更好地掌握R语言的编程技巧,提高数据分析的效率。
379 2
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
147 1
|
机器学习/深度学习 人工智能 数据挖掘
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第6天】在人工智能领域,机器学习已成为核心技术。本文指导初学者使用Python与Scikit-learn入门机器学习,涵盖基本概念、环境搭建、数据处理、模型训练及评估等环节。Python因简洁性及其生态系统成为首选语言,而Scikit-learn则提供了丰富工具,简化数据挖掘与分析流程。通过实践示例,帮助读者快速掌握基础知识,为进一步深入研究奠定坚实基础。
194 4
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型选择与训练、模型评估及交叉验证等关键步骤。通过本文,初学者可以快速上手并掌握机器学习的基本技能。
276 2