前言
- 建模的过程一向是枯燥乏味的,今天就让我们用R语言中丰富的可视化工具,自己搭建一个网站,实现聚类算法的可视化。源码已上传至我的资源空间,感兴趣的朋友可以在这里查看,一起学习、一起提高。网站效果如下:
上传数据
- 首先我们需要上传一份数据用于聚类分析,数据要求为csv格式,其中每一行代表一个样本;第一列为id列,标注每个样本的名称;其余列为样本在各维度下的观测值。
- 点击左侧导航栏中的
查找
按钮就可以选择上传的文件,上传成功后导航栏中会显示上传的文件名,切换到主数据页面就可以查看到我们上传的数据了。 - 这里我们上传了R语言的一份系统数据集
iris
,这是一份已知分类的关于鸢尾花花瓣与花萼长款的数据集,这里我们要求数据集的每一行为一个单独的样本,id
列的值不能重复,所以网站会自动把id
列中鸢尾花的类别修改为类别 + _No. + 数字标号
的形式。
使用k-means探索聚类分组数目
- 假设我们不知道鸢尾花的分类情况,我们需要探索将鸢尾花数据集分为几个类别最合适。这里我们就可以通过动态聚类法,快速查看该数据集被分为n类时的分类效果。
- 进入
k均值法
页面,我们可以通过调节右侧聚类控制
面板中的选项非常便捷的修改聚类参数。 - 在中间展示面板的
主图
子面板中,我们调用了R语言的扩展包展示出了当分组数目为2-10之间时的聚类效果。左边类似热力图的图表实际上是一张分类效果图,横轴为每个样本的编号,纵轴为分组数目,同种颜色为一个组别,主要展示了在分组数目确定的情况下哪些样本被分到了同一组。右边的点线图展示了Calinsky criterion
(即方差比准则)随着分组数目的变化,由于方差比是组间距离与组内距离按照分组数目加权后的比值,所以理论上方差比越大分组效果越好,这幅图中呈现的是:为了达到最好的分组效果,我们应该将数据集分为两个组别ÿ