《R语言与农业数据统计分析及建模》学习——聚类分析

2024-04-27 06:44

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

        聚类分析时一种分类技术。与回归分析、判别分析被一起成为多元分析的三大方法。根据分类的方法可将聚类分析分为:层次聚类、快速聚类等。

1、层次聚类

        (1)定义每个观测值(行或单元)为一类

        (2)计算每类和其他各类的距离

        (3)把距离最短的两类合并成一类,这样类的个数就减少一个

        (4)重复步骤(2)(3),知道包含所有观测值的类型合并成单个类为止。

2、快速聚类

        (1)选择K个中心点(随机选择K行)

        (2)把每个数据点分配到离它最近的中性点

        (3)重新计算每类中的点到该类中心点距离的平均值

        (4)分配每个数据到它最近的中心点

        (5)重复步骤(3)(4)直到所有观测值不再被分配或达到最大迭代次数(R默认10次)

3、R语言实现

        以flexclust包中的nutrient数据集为例,进行聚类分析。Nutrient数据集内容是27个不同种类的肉的5个成分含量。

(1)载入数据集

# 安装flexclust包
install.packages("flexclust")
# 载入flexclust包
library(flexclust)
# 载入nutrient数据集
data(nutrient)

(2)数据预处理 

        数据标准化:最常用的方法是将每个变量标准化为均值为0、标准差为1的变量,使用scale()函数。

# 展示行名称
row.names(nutrient)
# 将行名改为小写字母,保证命名的一致性
row.names(nutrient)<-tolower(row.names(nutrient))
# 查看数据
head(nutrient)
# 由于不同变量的变化范围不同,量纲不同,标准化数据有利于均衡各变量的影响
nutrient_scaled<-scale(nutrient)
head(nutrient_scaled)

(3)层次聚类

        dist()函数能够用来计算数据框所有行之间的距离

        层次聚类方法可以用hclust()函数来实现:hclust(d,method=),d为dist()函数产生的距离。

# 计算矩阵或数据框中所有行之间的距离,默认欧几里得距离
d<-dist(nutrient_scaled)
# 层次聚类
fit_average<-hclust(d,method="average")
# 可视化
plot(fit_average,hang=-1,main="Average Linkage Clustering")

(4)快速聚类

        快速聚类法,又称为K均值(K-means)法。

        使用kmeans()函数来实现快速聚类:kmeans(d,centers),d为dist()产生的距离矩阵,centers是要提取的聚类数据。

library(factoextra)
# 计算举证距离
d<-dist(nutrient_scaled)
# 以分类为3进行聚类
k_means<-kmeans(d,3)
# 可视化
fviz_cluster(k_means,nutrient_scaled)

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



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

相关文章

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

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

使用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 服务器中

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio