R语言算法之聚类分析
Kmeans聚类
先以已知的鸢尾花数据集为例(它的类已知,为三类)
加载数据集
data(iris)
# 查看数据集结构
head(iris)
数据处理:
图中可以看出,数据的单位差不了多少,不需要对数据集进行标准化处理,但是在进行聚类分析的时候,我们是通过对其他的标量进行分析判断,所以对于分的类(iris里面的Species在新数据集中不需要)
原数据保留,在新建的数据中“动刀动枪”
iris1 <- iris
iris1$Species <- NULL #删除iris中的Species
library(stats)
set.seed(1234)
模型的建立
kmeans.result <- kmeans(iris1,3) # kmeans(data,k)
kmeans.result$cluster
table(iris$Species,kmeans.result$cluster) #对原先数据的分类与模型预测后的分类做交叉表,
plot(iris1[,c("Sepal.Length","Sepal.Width")],col=kmeans.result$cluster) # 画图,以x轴为Sepal.Length,y