Fidelius示例教程

来自典枢
跳到导航 跳到搜索

您可以通过本页面了解如何在Fidelius中运行一个示例程序。

基于Iris数据集的K-Means聚类算法

基于Iris数据集的K-Means聚类是机器学习中一个非常经典的学习示例,这里我们介绍一下如何在Fidelius中实现这个例子。

Iris鸢尾花数据集

Iris 鸢尾花数据集内包含 3 类分别为山鸢尾(Iris-setosa)、变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾(Iris-virginica),共 150 条记录,每类各 50 个数据,每条记录都有 4 项特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度。

  • sepallength:萼片长度
  • sepalwidth:萼片宽度
  • petallength:花瓣长度
  • petalwidth:花瓣宽度

以上四个特征的单位都是厘米(cm)


Iris pic.15.png

Iris数据集部分展示如下:

sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 Iris-setosa
1 4.9 3.0 1.4 0.2 Iris-setosa
2 4.7 3.2 1.3 0.2 Iris-setosa
3 4.6 3.1 1.5 0.2 Iris-setosa
4 5.0 3.6 1.4 0.2 Iris-setosa
5 5.4 3.9 1.7 0.4 Iris-setosa
6 4.6 3.4 1.4 0.3 Iris-setosa
7 5.0 3.4 1.5 0.2 Iris-setosa
8 4.4 2.9 1.4 0.2 Iris-setosa
9 4.9 3.1 1.5 0.1 Iris-setosa


K-Means聚类算法

聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程,聚类就是一种发现这种内在结构的技术,聚类技术经常被称为无监督学习。

K均值聚类(K-Means)是最著名的划分聚类算法,由于简洁和效率使得他成为所有聚类算法中最广泛使用的。给定一个数据点集合和需要的聚类数目K,K由用户指定, k均值算法根据某个距离函数反复把数据分入K个聚类中。

K-Means算法通常使⽤肘部法则来选择K值。肘部法则考察聚类后全体样本的误差平⽅和SSE,将SSE随K值的变化由快速下降转变为缓慢变化的拐点处的K值,作为最佳聚类簇数。

肘部法则选择K值的依据:随着聚类数K的增⼤,样本划分会更加精细,每个簇的聚合程度会逐渐提⾼,那么误差平⽅和SSE⾃然会逐渐变⼩。且当K⼩于真实聚类数时,由于K的增⼤会⼤幅增加每个簇的聚合程度,故SSE的下降幅度会很⼤;当K达到真实聚类数时,再增加K所得到的聚合程度,回报就会迅速变⼩,所以SSE的下降幅度会骤减,然后随着K值的继续增⼤⽽趋于平缓。也就是说SSE与K之间的关系就像⼿肘的形状,这个肘部对应的K值就是数据的真实聚类数。

使⽤K-Means对数据集iris进⾏聚类分析:加载iris数据集,按照4个特征,使⽤肘部法则确定最佳的K值,然后使⽤KMeans类进⾏聚类,最后可视化聚类结果。

Kmeans.png