码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python sklearn实现K-means鸢尾花聚类


    ✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
    🍎个人主页:小嗷犬的博客
    🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
    🥭本文内容:Python sklearn实现K-means鸢尾花聚类
    更多内容请见👇

    • Python sklearn实现SVM鸢尾花分类
    • Pytorch 基于LeNet的手写数字识别
    • Pytorch 基于AlexNet的服饰识别(使用Fashion-MNIST数据集)

    本文目录

      • 准备
      • 导入相关包
      • 直接从sklearn.datasets中加载数据集
      • 绘制二维数据分布图
      • 实例化K-means类,并且定义训练函数
      • 训练
      • 可视化展示
      • 预览图


    准备

    使用到的库:

    • numpy
    • matplotlib
    • sklearn

    安装:

    pip install numpy
    pip install matplotlib
    pip install sklearn
    
    • 1
    • 2
    • 3

    数据集:
    使用开源数据集“鸢尾花数据集”。包含3种类型数据集,共150条数据;数据包含4项特征,花萼长度、花萼宽度、花瓣长度、花瓣宽度;将80%的数据划分为训练集,20%划分为测试集。

    下载地址:
    https://download.csdn.net/download/qq_63585949/86827472

    对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇,让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。
    K-means鸢尾花聚类


    导入相关包

    import matplotlib.pyplot as plt
    import numpy as np
    from sklearn.cluster import KMeans 
    from sklearn import datasets 
    
    • 1
    • 2
    • 3
    • 4

    直接从sklearn.datasets中加载数据集

    # 直接从sklearn中获取数据集
    iris = datasets.load_iris()
    X = iris.data[:, :4]    # 表示我们取特征空间中的4个维度
    print(X.shape)
    
    • 1
    • 2
    • 3
    • 4

    绘制二维数据分布图

    每个样本使用两个特征,绘制其二维数据分布图

    # 取前两个维度(萼片长度、萼片宽度),绘制数据分布图
    plt.scatter(X[:, 0], X[:, 1], c="red", marker='o', label='see')
    plt.xlabel('sepal length')
    plt.ylabel('sepal width')
    plt.legend(loc=2)
    plt.show() 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    二维数据分布图


    实例化K-means类,并且定义训练函数

    def Model(n_clusters):
        estimator = KMeans(n_clusters=n_clusters)# 构造聚类器
        return estimator
    
    def train(estimator):
        estimator.fit(X)  # 聚类
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    训练

    # 初始化实例,并开启训练拟合
    estimator=Model(3)     
    train(estimator)    
    
    • 1
    • 2
    • 3

    可视化展示

    label_pred = estimator.labels_  # 获取聚类标签
    # 绘制k-means结果
    x0 = X[label_pred == 0]
    x1 = X[label_pred == 1]
    x2 = X[label_pred == 2]
    plt.scatter(x0[:, 0], x0[:, 1], c="red", marker='o', label='label0')
    plt.scatter(x1[:, 0], x1[:, 1], c="green", marker='*', label='label1')
    plt.scatter(x2[:, 0], x2[:, 1], c="blue", marker='+', label='label2')
    plt.xlabel('sepal length')
    plt.ylabel('sepal width')
    plt.legend(loc=2)
    plt.show() 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    预览图

    K-means鸢尾花聚类

  • 相关阅读:
    05【数据的备份与恢复】
    024el-tree中的DataTransfer.setDragImage()方法实现拖拽节点的Dom自定义展示
    Ubuntu20.04安装pycharm
    Win11运行cmd提示“请求的操作需要提升”的解决方法
    【图像隐写】基于Jsteg算法实现JPEG图像信息隐藏,可设置DCT系数 嵌入率附Matlab代码
    【JavaSE基础】对象的构造及初始化
    性能测试jmeter连接数据库jdbc(sql server举例)
    Android Framework 裁剪
    知识图谱和大语言模型的共存之道
    向日葵远程控制遭勒索病毒攻击系谣言 贝锐官方已发公告辟谣
  • 原文地址:https://blog.csdn.net/qq_63585949/article/details/127550767
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号