基於R做聚類分析

一 數據集

setwd("C://Users//admin//Desktop//DATA") #設置路徑
Iris=read.table("Iris.txt") 
names(Iris)=c("v1","v2","v3","v4","label") #設置變量名
var=Iris$label #將標籤賦予var
var=as.character(var)  #將var轉換爲字符型

這裏寫圖片描述

二 K-Medoids聚類
K-中心點算法與K-均值算法在原理上十分接近,主要區別在於在選取每個類別的中心點時,K-中心點算法在類別內選取到其餘樣本距離之和最小的樣本爲中心。
K-中心點算法在R中的軟件包爲Cluster主要函數爲pam ().

install.packages("cluster")
library(cluster)

kc=pam(Iris[,-5],3)  #去掉標籤
print(kc)
kc=pam(Iris[,-1],3,cluster.only=TRUE) #顯示聚類結果
print(kc)

這裏寫圖片描述
Medoids:該項指明聚類完成時聚類完成的各類別的中心點分別是哪幾個樣本點,它們的變量取值爲多少。
Objective function:該項給出了build和swap兩個過程中目標方程的值。其中,build過程用於在未指定初始中心點情況下,對於最優初始中心點的尋找;而swap過程則用於在初始中心點的基礎上,對目標方程尋找其能達到局部最優類別劃分狀態。
這裏寫圖片描述

三 EM聚類

library(mclust)
fit_em=Mclust(Iris[,-5])
summary(fit_em)
fit_em=mclustBIC(Iris[,-5]) # 第二個聚類函數
BICsum=summary(fit_em,data=Iris[,-5])

這裏寫圖片描述
這裏寫圖片描述

這裏有聚類結果可視化展示,不過對於高維數據,打算再研究一下。
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章