既存の 16 種類の飲料のカロリー、カフェイン含有量、ナトリウム含有量、および価格のデータを下の表に示します。16 種類の飲料は、これら 4 つの変数に従ってクラスター化されます (この質問は、放課後の R 演習に基づく多変量統計分析から得られます)。
クラスタリングにはシステマティック クラスタリングの最小距離法が使用され、R プログラムは次のようになります。
# 系统聚类法
library(mclust)
ex4.2<-read.csv("ex4.2.csv",header = T)
d4.2=ex4.2[,-1] #ex4.5.csv的第一列为序号,先去掉
rownames(d4.5)=ex4.5[,1] #用ex4.2的第一列为d4.2的行重新命名
d<-dist(d4.2,method = "euclidean",diag = T,upper = F,p=2)
#采用欧氏距离计算距离矩阵d,diag设定是否输出对角线上值
#upper设定是否输出d的上三角部分值,p为明式距离参数k
HC<-hclust(d,method = "single") #采用最小距离法聚类
plot(HC,hang=-1) #绘制最小距离法聚类树状图
#当hang取负值时,从底部对齐开始绘制聚类树状图
abline(h=30);abline(h=20)
16 種類の飲料のクラスター樹形図は次のとおりです。
合計距離が 30 の場合、16 種類の飲料は 2 つのカテゴリに分類でき、合計距離が 20 の場合、16 種類の飲料は 4 つのカテゴリに分類できることがわかります。
サンプルのクラスタリングに最大距離法を使用し、サンプル間の測定にユークリッド距離法を使用すると、クラスタリングの結果は最小距離法の結果と同じになりますが、マージされた距離が異なるため、行きません。詳細はこちら。
関数 rect.hclust() を使用して、デンドログラムに従って最終的な分類を決定することもできます. 分類の数が 3 の場合、R プログラムは次のようになります。
rect.hclust(HC,k=3)
クラスター樹状図は次のとおりです。
R では、関数 cutree() を使用して、hclust() 関数クラスタリングの結果を枝刈りすることもできます.3 つのカテゴリ、k=3 を設定すると、R プログラムは次のようになります。
cutree(HC,k=3)
出力結果は、16 種類の飲料を 3 つのカテゴリに分類できることを示しています。これらのカテゴリは、それぞれ 1、2、および 3 に対応する位置 {1, 10}、{2, 3、4、5、6、8、9、 11、12、13、14、15、16}および{7}。