r语言聚类分析_利用R语言进行层次聚类分析以及绘制树状图

    树形图(dendrogram)是表示树的图。 这种图解表示经常多种场合中被使用:

  1. 在层次聚类中,它说明了由相应分析产生的聚类的排列;

  2. 在计算生物学中,它显示了基因或样本的聚类,有时在热图的边缘

  3. 在系统发育学中,它显示了各种生物类群之间的进化关系。 在这种情况下,树状图也称为系统发育树。

    其实最简单的理解就是树形图是通过计算距离(计算距离的方式)来表示两个对象之间关系远近的图解。

进行计算

#以内置的数据集为例data(iris)

处理的对象必须是数字类型(numeric或者integer)

#利用apply结合as.numeric转化为可使用的数字类型iris[,c('Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width')] 'Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width')],2,as.numeric)

计算距离

#简单的可直接用dist计算欧式几何距离iris_dist 'Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width')],method = 'euclidean')

进行层次聚类

iris_hclust 'average')
plot(iris_hclust)

r语言聚类分析_利用R语言进行层次聚类分析以及绘制树状图_第1张图片

可视化

直接用plot可直接画出Dendrogram,即树状图,但是有点丑.

1.通过ggdendro画图,这个包看名字就知道和ggplot2有勾搭

library(ggdendro)
ggdendrogram(iris_hclust)

r语言聚类分析_利用R语言进行层次聚类分析以及绘制树状图_第2张图片

2.发现一个有意思的function,这个不算是完整的包,但是可通过source来下使用

#从这个链接里source到本地使用source("http://addictedtor.free.fr/packages/A2R/lastVersion/R/code.R")op = par(bg = "grey75")iris_hclust$labels A2Rplot(iris_hclust, k = 3, boxes = TRUE, col.up = "purple", col.down = c("red","green","blue"),type='triangle')

r语言聚类分析_利用R语言进行层次聚类分析以及绘制树状图_第3张图片

op = par(bg = "grey75")
iris_hclust$labels A2Rplot(iris_hclust, k = 3, boxes = TRUE, col.up = "purple", col.down = c("red","green","blue"),type='rectangle')

r语言聚类分析_利用R语言进行层次聚类分析以及绘制树状图_第4张图片

你可能感兴趣的:(r语言聚类分析)