前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python sklearn实现K-means鸢尾花聚类

Python sklearn实现K-means鸢尾花聚类

作者头像
小嗷犬
发布2022-11-15 16:16:28
9390
发布2022-11-15 16:16:28
举报

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


本文目录


准备

使用到的库:

  • numpy
  • matplotlib
  • sklearn

安装:

代码语言:javascript
复制
pip install numpy
pip install matplotlib
pip install sklearn

数据集: 使用开源数据集“鸢尾花数据集”。包含3种类型数据集,共150条数据;数据包含4项特征,花萼长度、花萼宽度、花瓣长度、花瓣宽度;将80%的数据划分为训练集,20%划分为测试集。 下载地址: https://download.csdn.net/download/qq_63585949/86827472 对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇,让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。


1.导入相关包

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np
from sklearn.cluster import KMeans 
from sklearn import datasets 

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

代码语言:javascript
复制
# 直接从sklearn中获取数据集
iris = datasets.load_iris()
X = iris.data[:, :4]    # 表示我们取特征空间中的4个维度
print(X.shape)

3.绘制二维数据分布图

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

代码语言:javascript
复制
# 取前两个维度(萼片长度、萼片宽度),绘制数据分布图
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() 

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

代码语言:javascript
复制
def Model(n_clusters):
    estimator = KMeans(n_clusters=n_clusters)# 构造聚类器
    return estimator

def train(estimator):
    estimator.fit(X)  # 聚类

5.训练

代码语言:javascript
复制
# 初始化实例,并开启训练拟合
estimator=Model(3)     
train(estimator)    

6.可视化展示

代码语言:javascript
复制
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() 

7.预览图

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本文目录
  • 准备
  • 1.导入相关包
  • 2.直接从sklearn.datasets中加载数据集
  • 3.绘制二维数据分布图
  • 4.实例化K-means类,并且定义训练函数
  • 5.训练
  • 6.可视化展示
  • 7.预览图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档