R语言中的聚类的使用 - 小明在线

R语言中的聚类的使用

这里的聚类主要用到K-Means和K-Medoide聚类。在进行聚类之前,为了避免不同参数之间量纲不同所造成的影响,先将数据进行(0-1)标准化

# 如参数weight
data$weight <- (data$weight-min(data$weight))/(max(data$weight)-min(data$weight))

K-Means算法

1.读取数据

data <- read.csv("data/km/data.csv",header = T)

2.调用kmeans算法

# 设置聚类数
cluster_num <- 5
# 调用kmeans算法
km <- kmeans(data,cluster_num)

3.查看分类情况和总体汇总

# 查看具体分类情况
fitted(km)   
# 查看分类概括
table(data$weight, km$cluster)  

4.将结果保存

# 构建新数据框映射
df <- data.frame(km[[1]],data$weight)
# 参数重新命名
names(df) <- (c("classification_number","weight"))
# 保存写入
write.csv(df,file="data/km.csv")

K-Medoide算法

这里用到K-Medoide中对大样本数据处理的算法------CLARA算法

1.下载cluster包

install.packages("cluster")

2.引入cluster包

# 引入cluster包
library(cluster)

3.读取数据

data <- read.csv("data/km/data.csv",header = T)

4.调用CLARA算法

# 设置聚类数
cluster_num <- 5
# 调用CLARA算法
cl <- clara(data,cluster_num)

5.将结果保存

# 构建新数据框映射
df <- data.frame(cl$clustering,data$weight)
#参数重新命名
names(df) <- (c("classification_number","weight"))
# 写入 write.csv(df,file="data/clara.csv")