R语言k-means聚类、层次聚类、主成分(PCA)降维及可视化分析鸢尾花iris数据集|附代码数据

发布时间 2023-12-22 21:17:11作者: 拓端tecdat

原文链接:http://tecdat.cn/?p=22838

最近我们被客户要求撰写关于鸢尾花iris数据集的研究报告,包括一些图形和统计输出。

本练习问题包括:使用R中的鸢尾花数据集

 

(a)部分:k-means聚类
使用k-means聚类法将数据集聚成2组。
画一个图来显示聚类的情况
使用k-means聚类法将数据集聚成3组。
画一个图来显示聚类的情况
(b)部分:层次聚类
使用全连接法对观察值进行聚类。
使用平均和单连接对观测值进行聚类。
绘制上述聚类方法的树状图。

使用R中的鸢尾花数据集k-means聚类

讨论和/或考虑对数据进行标准化。

 
 
data.frame(
  "平均"=apply(iris[,1:4], 2, mean
  "标准差"=apply(iris[,1:4], 2, sd)

图片

在这种情况下,我们将标准化数据,因为花瓣的宽度比其他所有的测量值小得多。

向下滑动查看结果▼

使用k-means聚类法将数据集聚成2组

使用足够大的nstart,更容易得到对应最小RSS值的模型。

 
 
kmean(iris, nstart = 100)

 

向下滑动查看结果▼

画一个图来显示聚类的情况

 
 
# 绘制数据
plot(iris, y = Sepal.Length, x = Sepal.Width)

图片

为了更好地考虑花瓣的长度和宽度,使用PCA首先降低维度会更合适。

 
 
#  创建模型

PCA.mod<- PCA(x = iris)

#把预测的组放在最后
PCA$Pred <-Pred

#绘制图表
plot(PC, y = PC1, x = PC2, col = Pred)

图片

为了更好地解释PCA图,考虑到主成分的方差。

 
 
## 看一下主要成分所解释的方差

for (i in 1:nrow) {
  pca[["PC"]][i] <- paste("PC", i)
}

图片

 
 
plot(data = pca,x = 主成分, y = 方差比例, group = 1)

图片

数据中80%的方差是由前两个主成分解释的,所以这是一个相当好的数据可视化。

向下滑动查看结果▼

 使用k-means聚类法将数据集聚成3组

在之前的主成分图中,聚类看起来非常明显,因为实际上我们知道应该有三个组,我们可以执行三个聚类的模型。

 
 
kmean(input, centers = 3, nstart = 100)
# 制作数据
groupPred %>% print()

图片

向下滑动查看结果▼

画一个图来显示聚类的情况

 
 
#  绘制数据
plot(萼片长度,萼片宽度, col =pred)

图片

向下滑动查看结果▼

PCA图

为了更好地考虑花瓣的长度和宽度,使用PCA首先减少维度是比较合适的。

 
 
#创建模型
prcomp(x = iris)

#把预测的组放在最后
PCADF$KMeans预测<- Pred

#绘制图表
plot(PCA, y = PC1, x = PC2,col = "预测\n聚类", caption = "鸢尾花数据的前两个主成分,椭圆代表90%的正常置信度,使用K-means算法对2个类进行预测") +

图片

向下滑动查看结果▼

 


点击标题查阅往期内容

图片

R语言鸢尾花iris数据集的层次聚类分析

图片

左右滑动查看更多

图片

01

图片

02

图片

03

图片

04

图片

 

PCA双曲线图

萼片长度~萼片宽度图的分离度很合理,为了选择在X、Y上使用哪些变量,我们可以使用双曲线图。

 
 
biplot(PCA)

图片

这个双曲线图显示,花瓣长度和萼片宽度可以解释数据中的大部分差异,更合适的图是:

 
 
plot(iris, col = KM预测)

图片

评估所有可能的组合。

 
 
iris %>%
  pivot_longer()  %>% 
plot(col = KM预测, facet_grid(name ~ ., scales = 'free_y', space = 'free_y', ) +

图片

向下滑动查看结果▼

层次聚类

使用全连接法对观测值进行聚类。

可以使用全连接法对观测值进行聚类(注意对数据进行标准化)。

 
 
hclust(dst, method = 'complete')

 

向下滑动查看结果▼

使用平均和单连接对观察结果进行聚类。

 
 
 hclust(dst, method = 'average')
hclust(dst, method = 'single')

向下滑动查看结果▼

绘制预测图

现在模型已经建立,通过指定所需的组数,对树状图切断进行划分。

 
 
#  数据
iris$KMeans预测<- groupPred


# 绘制数据
plot(iris,col = KMeans预测))

图片

向下滑动查看结果▼

绘制上述聚类方法的树状图

对树状图着色。

 
 
type<- c("平均", "全", "单")

for (hc in models) plot(hc, cex = 0.3)

图片

图片

图片

向下滑动查看结果▼


图片

点击文末 “阅读原文”

获取全文完整代码数据资料。

本文选自《R语言k-means聚类、层次聚类、主成分(PCA)降维及可视化分析鸢尾花iris数据集》。

点击标题查阅往期内容

SPSS用K均值聚类KMEANS、决策树、逻辑回归和T检验研究通勤出行交通方式选择的影响因素调查数据分析
数据分享|R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济指标
数据分享|R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化
R语言逻辑回归logistic模型分析泰坦尼克titanic数据集预测生还情况R语言是否对二分连续变量执行逻辑回归
R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据
R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析
R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林分析心脏病患者
R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险
R语言用局部加权回归(Lowess)对logistic逻辑回归诊断和残差分析R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化
R语言用线性模型进行臭氧预测:加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值R语言Bootstrap的岭回归和自适应LASSO回归可视化
R语言中回归和分类模型选择的性能指标
R语言多元时间序列滚动预测:ARIMA、回归、ARIMAX模型分析
R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据
R语言计量经济学:虚拟变量(哑变量)在线性回归模型中的应用
R语言 线性混合效应模型实战案例
R语言混合效应逻辑回归(mixed effects logistic)模型分析肺癌数据
R语言如何用潜类别混合效应模型(LCMM)分析抑郁症状
R语言基于copula的贝叶斯分层混合模型的诊断准确性研究
R语言建立和可视化混合效应模型mixed effect model
R语言LME4混合效应模型研究教师的受欢迎程度
R语言 线性混合效应模型实战案例
R语言用Rshiny探索lme4广义线性混合模型(GLMM)和线性混合模型(LMM)
R语言基于copula的贝叶斯分层混合模型的诊断准确性研究
R语言如何解决线性混合模型中畸形拟合(Singular fit)的问题
基于R语言的lmer混合线性回归模型
R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型
R语言分层线性模型案例
R语言用WinBUGS 软件对学术能力测验(SAT)建立分层模型
使用SAS,Stata,HLM,R,SPSS和Mplus的分层线性模型HLM
R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型
SPSS中的多层(等级)线性模型Multilevel linear models研究整容手术数据
用SPSS估计HLM多层(层次)线性模型模型R语言高维数据的主成分pca、 t-SNE算法降维与可视化分析案例报告
R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例
R语言有RStan的多维验证性因子分析(CFA)
主成分分析(PCA)原理及R语言实现及分析实例
R语言无监督学习:PCA主成分分析可视化
R语言使用Metropolis- Hasting抽样算法进行逻辑回归
R语言多元Logistic逻辑回归 应用案例
R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析
R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测
R语言基于树的方法:决策树,随机森林,Bagging,增强树
spss modeler用决策树神经网络预测ST的股票
R语言中自编基尼系数的CART回归决策树的实现
python在Scikit-learn中用决策树和随机森林预测NBA获胜者
matlab使用分位数随机森林(QRF)回归树检测异常值
基于随机森林、svm、CNN机器学习的风控欺诈识别模型
R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例
R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分