这里的聚类主要用到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")