Python实现鸢尾花的K-means聚类剖析

Python对鸢尾花开展K-means聚类的深入解析

借助vscode软件进行编写

相关的包与算法

  • pandas:用于数据的处理和剖析。在鸢尾花聚类分析场景中发挥作用
  • numpy:用于进行数值方面的计算。
  • matplotlib.pyplot:用来进行绘图操作。
  • sklearn.cluster.KMeans:用于执行K-means聚类算法。
  • sklearn.metrics:用于对聚类的性能进行评估。
  • seaborn:用于绘制更加美观的图形。
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.cluster import KMeans
    from sklearn import metrics
    import seaborn as sns
    

数据的加载与处理

  • 把已经下载好的数据进行导入(能够前往Iris - UCI Machine Learning Repository官网进行下载)
  • 包含四个特征:萼片长度(Sepal Length)、萼片宽度(Sepal Width)、花瓣长度(Petal Length)和花瓣宽度(Petal Width),还有一个目标变量“Species”(种类)
  • 由于K-means聚类属于无监督学习算法,不需要目标变量,所以从数据集中把最后一列删除,此时X就只包含四个特征列了。
    data = pd.read_table("D:\AIExercise\iris.data")
    # print(data)
    # 将下载的data数据转换成csv数据
    data.to_csv("D:\AIExercise\iris.csv",sep='|',index=False)
    print(data)

    # 直接读取csv文件
    iris = pd.read_csv("D:\\AIExercise\\iris.csv", header=None)
    # 给数据添加列名
    iris.columns = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'species']
    # 查看数据的前几行,保证数据加载正确
    print(iris.head(15))
    # 提取特征数据(不包含最后一列的物种名称)
    X = iris.iloc[:, :-1].values
    

<p>Python实现鸢尾花的K-means聚类剖析</p>

  • 聚类结果的获取以及聚类中心的确定

  • 为了挑选合适的聚类数(也就是n_clusters的值),能够运用肘部法则(Elbow Method)。肘部法则通过观察随着聚类数增加,聚类的总平方误差(Within-Cluster Sum of Squares, WCSS)的变化态势来确定最佳聚类数。当聚类数增加时,WCSS会逐步减小,不过当达到某个点后,WCSS的下降速度会显著变缓,这个点通常被视作最佳聚类数。

  • 通过观察肘部图,选取合适的聚类数。一般来说,在肘部位置(SSE下降速度明显变缓的位置)对应的聚类数比较合理。对于鸢尾花数据集,通常选取3个聚类数。
    # 使用肘部法则来确定最佳聚类数
    wcss = []
    for i in range(1, 11): # 测试1到10个聚类
    kmeans = KMeans(n_clusters=i, random_state=0)
    kmeans.fit(X)
    wcss.append(kmeans.inertia_) # inertia_是WCSS的值

    # 绘制肘部图
    plt.figure(figsize=(10, 6))
    plt.plot(range(1, 11), wcss, marker='o')
    plt.title('Elbow Method For Optimal Number of Clusters')
    plt.xlabel('Number of Clusters')
    plt.ylabel('WCSS')
    plt.xticks(range(1, 11))
    plt.show()
    
    # 使用KMeans进行聚类分析
    # 这里假设我们已经知道鸢尾花有3个类别,所以设置n_clusters=3
    kmeans = KMeans(n_clusters=3, random_state=0)
    kmeans.fit(X)
    
    # 把聚类结果标签添加到原始数据中
    iris['cluster'] = kmeans.labels_
    
    # 查看聚类结果
    print(iris.head(15))
    

<p>Python实现鸢尾花的K-means聚类剖析</p>

<p>Python实现鸢尾花的K-means聚类剖析</p>

聚类结果的可视化(以sepal_length和sepal_width为例)

  • 为了直观地展示聚类结果,可以通过二维散点图来进行可视化。由于鸢尾花数据集有四个特征,能够选取其中两个特征(以sepal_length和sepal_width为例)来进行可视化。不同的颜色代表不同的聚类,黑色的X标记表示聚类中心。
    plt.figure(figsize=(10, 6))
    sns.scatterplot(x='sepal_length', y='sepal_width', hue='cluster', data=iris, palette='viridis', s=100)
    plt.title('KMeans Clustering of Iris Dataset')
    plt.show()

  • <p>Python实现鸢尾花的K-means聚类剖析</p>

  • 存在中文字需要设置参数

    # 设置绘图参数,保证中文和负号能够正常显示
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False
    

聚类效果的评估

  • 可以运用一些指标来评估聚类性能,比如轮廓系数(Silhouette Coefficient)和戴维斯-邦丁指数(Davies-Bouldin Index)。还有每个类别的中心点
    # 计算轮廓系数
    silhouette_avg = metrics.silhouette_score(X, kmeans.labels_)
    print(f'Silhouette Score: {silhouette_avg:.2f}')
    # 计算戴维斯-邦丁指数
    dbi = metrics.davies_bouldin_score(X, kmeans.labels_)
    print(f"戴维斯-邦丁指数:{dbi:.2f}")

    # 输出聚类中心
    cluster_centers = kmeans.cluster_centers_
    print("Cluster Centers:\n", cluster_centers)
    
    # 计算每个类别的中心点
    cluster_centers = kmeans.cluster_centers_
    print("Cluster Centers:\n", cluster_centers)
    
    • <p>Python实现鸢尾花的K-means聚类剖析</p>

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/12739.html

(0)
LomuLomu
上一篇 2025 年 7 月 4 日
下一篇 2025 年 7 月 4 日

相关推荐

  • 无需手机号注册clion激活码,零基础学会clion破解教程

    申明:本教程Clion破解补丁、激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除。若条件允许,希望大家购买正版 ! 废话不多说,先上 Clion2025.2.1 版本破解成功的截图,如下图,可以看到已经成功破解到 2099 年辣,舒服的很! 接下来就给大家通过图文的方式分享一下如何破解最新的Clion。 准备工作 注意:如果你之前用过…

    2025 年 12 月 19 日
    5000
  • IDEA破解工具使用小技巧|新手也能轻松上手!

    本教程通杀 IDEA、PyCharm、DataGrip、Goland 等 JetBrains 全家桶,Windows / macOS / Linux 全平台通用! 先放张图镇楼:IDEA 2024.3.5 已顺利激活到 2099 年,真香! 下面我会用图文一步步带你完成激活,旧版本同样适用,无论系统、无论版本,我都给你准备好了。 第一步:下载 IDEA 安装…

    2025 年 9 月 30 日
    33100
  • 不花钱也能拥有clion激活码,一键搞定clion破解教程

    申明:本教程Clion破解补丁、激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除。若条件允许,希望大家购买正版 ! 废话不多说,先上 Clion2025.2.1 版本破解成功的截图,如下图,可以看到已经成功破解到 2099 年辣,舒服的很! 接下来就给大家通过图文的方式分享一下如何破解最新的Clion。 准备工作 注意:如果你之前用过…

    2025 年 12 月 18 日
    6000
  • IDEA 2025.3 激活码及破解教程合集

    重要提示:本教程所涉及的IntelliJ IDEA破解补丁及激活码均来源于网络收集,仅限个人学习研究使用,严禁任何商业用途。如条件允许,强烈建议支持正版软件!若内容侵犯了您的权益,请联系笔者删除。 IntelliJ IDEA作为JetBrains旗下的明星产品,是一款功能全面且跨平台的集成开发环境,完美兼容Windows、macOS及Linux操作系统。接下…

    IDEA破解教程 2026 年 1 月 1 日
    4100
  • IDEA激活码与破解补丁哪个好用?

    本教程适用于IDEA、PyCharm、DataGrip、Goland等,支持Jetbrains全家桶! 废话不多说,先上最新 IDEA 版本破解成功的截图,如下,可以看到已经成功破解到 2099 年辣,舒服! 接下来,我就将通过图文的方式, 来详细讲解如何激活 IDEA至 2099 年。 当然这个激活方法,同样适用于之前的旧版本! 不管你是什么操作系统,什么…

    IDEA破解教程 2025 年 12 月 14 日
    6800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信