《R语言与农业数据统计分析及建模》学习——判别分析和主成分分析

本文主要是介绍《R语言与农业数据统计分析及建模》学习——判别分析和主成分分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、判别分析

       判别分析又称“分辨法”。使用已知分类的数据训练建立分类规则,然后把这样的规则应用到未知分类的样本中去分类,以识别位置样本所属的分类。

        判别分析多用于遥感影像的地物分类;农林害虫预报;气象数据中的天气预报等等。

1、载入数据集

        使用R语言自带的iris数据集,进行Fisher线性判别。用MASS包调用相关函数。

# 安装并载入所需MASS包
install.packages("MASS")
library(MASS)# 载入iris数据集
data(iris)
head(iris)

2、输入判别公式

        先验概率(prior probability of groups),为不同的类别分配不同的概率估计,用于确定新观测数据属于哪个类别。

        各组均值向量(group means),即该组各维度的数据均值作为该组的均值向量。

        第一、第二线性判别函数系数(Coefficient of linear discriminants)

        两个判别式对区分各总体贡献的大小(proportion of trace)

# 输入公式,Species作为判别项,其他作为自变量
ld<-lda(Species~.,data=iris)
# 查看建立的公式
print(ld)

3、判别分析结果比较

# 对原始数据进行回判分类
p_iris<-predict(ld)
new_class<-p_iris$class
# 查看结果
print(cbind(iris$Species,new_class,p_iris$x))
# 列表比较
table(iris$Species,p_iris$class)

二、主成分分析

        主成分分析的一半目的是变量的降维和主成分的解释。

        主成分分析通过正交变换将一组核能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫做主成分。

        在变换中,保持变量的总方差不变,同时,使第一主成分具有最大方差,第二主成分具有次大方差,依次类推。

1、载入数据集

        数据集采用R语言自带iris数据集。还需要两个包:

        FactoMineR包:包含主成分分析所需的PCA函数。

        factoextra包:进行主成分的可视化

library('FactoMineR')
library('factoextra')
# 载入数据集
data(iris)
# 查看数据
head(iris,3)

2、主成分分析

        使用FactoMineR包中的PCA()函数。

PCA(X,sacle.unit=T,graph=T)

其中,X表示不包含分类变量的主成分分析数据集;

        scale.unit=T代表是分析前对数据进行标准化处理;

        graph=F代表不显示图像。

3、提取特征值

        使用factoextra包中的get_eigenvalue()函数,提取主成分的特征值/方差贡献率。

# 主成分分析
# iris[,-5],为删除了分类变量的iris数据集
iris_pca<-PCA(iris[,-5],scale.unit=T,graph=F)
# 提取特征值
eig_val<-get_eigenvalue(iris_pca)
print(eig_val)

 

4、结果可视化

        碎石图绘制函数:factoextra包中的fviz_eig()函数

        个体在主成分空间的显示:factoextra包中的fviz_pac_ind()函数

# 可视化
# 碎石图
screen_plot<-fviz_eig(iris_pca)
screen_plot
# 个体PCA可视化
ind_plot<-fviz_pca_ind(iris_pca,geom.ind = "point", # 点图col.ind=iris$Species,palette=c("#00AFBB","#E7B800","#FC4E07"), #颜色设置addEllipses = TRUE, # 添加椭圆legend.title="Groups" # 添加标题
)
ind_plot

这篇关于《R语言与农业数据统计分析及建模》学习——判别分析和主成分分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/942736

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三