首页 > 其他分享 >[Machine Learning] 使用经典聚类模型k均值(k-means)实现blobs聚类

[Machine Learning] 使用经典聚类模型k均值(k-means)实现blobs聚类

时间:2025-01-17 17:23:56浏览次数:1  
标签:plt blobs min max means 聚类 数据

一、内容实现概述

本文主要讲述使用scikit-learn库内置的kNN模型,实现鸢尾花分类。具体实现过程如下:

  • 1. 导入所需库:预先导入numpy、matplotlib以及scikit-learn库
  • 2. 导入数据:调用sklearn库内置的加载数据的方法make_blobs(),导入斑点数据
  • 3. 数据预处理:对blobs数据进行预处理,获得特征数据与目标数据
  • 4. 数据分割:使用sklearn库的数据分割方法对步骤3中的数据进行比例分割,得到训练集和测试集数据
  • 5. 构建模型:调用sklearn库的聚类模型类KMeans构建模型(本实现已手动设置聚类数这个超参数值为4,根据该数据训练后的结果观察得来)
  • 6. 训练模型:调用sklearn库的fit()方法对训练集数据进行训练
  • 7. 预测模型:调用sklearn库的predict()方法对测试集数据进行预测

注:

  • 在Python中使用(导入)numpy库时,需要先安装,本实现使用的是pip命令安装 pip install numpy
  • 在Python中使用(导入)matplotlib库时,需要先安装,本实现使用的是pip命令安装 pip install matplotlib
  • 在Python中使用(导入)scikit-learn库时,需要先安装,本实现使用的是pip命令安装 pip install -U scikit-learn
  • Scikit-Learn官方教程

 

二、代码实现

注:源代码地址

from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import numpy as np

# 加载数据
blobs = make_blobs(n_samples=200, random_state=1, centers=4)

# 数据预处理
X = blobs[0]
y = blobs[1]    ## 特征X的值对应的类别标签数据

plt.scatter(X[:, 0], X[:, 1], c=y)
plt.show()

# 导入模型
kmeans = KMeans(n_clusters=4, n_init=10, max_iter=300, random_state=None)

# 训练模型
kmeans.fit(X)

# 预测模型:聚类
## 获取簇边界
X_min, X_max = X[:, 0].min() - 0.5, X[:, 0].max() + 0.5
y_min, y_max = X[:, 1].min() - 0.5, X[:, 1].max() + 0.5

## 生成网络点矩阵
xx, yy = np.meshgrid(np.arange(X_min, X_max, 0.02), np.arange(y_min, y_max, 0.02))
### 把这个密集的网格坐标点当作一个测试集,把这些坐标点拿去预测,看它们分别属于哪个簇
### np.c_[arr_1, arr_2],表示将两个一维数组变成一个二维数据
Z = kmeans.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)

# 评估模型


# 绘制图表 
plt.figure(1)
plt.clf()
## 根据每个网格点所属的簇不同,渲染不同的颜色
plt.imshow(Z, cmap=plt.cm.winter, origin='lower', interpolation='hermite', extent=(xx.min(), xx.max(), yy.min(), y.max()), aspect='auto')
plt.plot(X[:, 0], X[:, 1], 'w.', markersize=5)

## 簇中心(质心)的坐标
centroid = kmeans.cluster_centers_
## 将簇中心用标记“×”标识出来
plt.scatter(centroid[:, 0], centroid[:, 1], c='r', marker='x', linewidths=3, s=150, zorder=10)
plt.xlim(X_min, X_max)
plt.ylim(y_min, y_max)
plt.xticks()
plt.yticks()
plt.show()

 

 

三、运行结果

 

标签:plt,blobs,min,max,means,聚类,数据
From: https://www.cnblogs.com/xl1164191281/p/18677333

相关文章

  • 【人工智能学习之聚类分析算法DBSCAN】
    【人工智能学习之聚类分析算法DBSCAN】什么是DBSCAN详细介绍对比DBSCAN和K-Means聚类算法的优缺点DBSCAN的实际应用DBSCAN调用方法具体代码示例:人群密度测算修改参数什么是DBSCANDBSCAN(Density-BasedSpatialClusteringofApplicationswithNoise),即基于密度的......
  • 无监督学习(聚类)
    无监督学习无监督学习无监督学习前言一、无监督学习是什么?1)机器学习的分类2)解释(图文结合)3)区别二、无监督学习应用范围三、无标注数据的结构1)用处四、聚类1)聚类的含义:2)怎么判断是好的聚类:原则:3)聚类的分类:1)软聚类(softclustering)vs.硬聚(hardclustering)2)层次聚类......
  • R语言ggplot2可视化树状图、层次聚类系统树图、树状图根据给定的距离度量将相似点分组
    R语言ggplot2可视化树状图、层次聚类系统树图、树状图根据给定的距离度量将相似点分组在一起、并根据点的相似性将它们组织成树状图链接起来(HierarchicalDendrogram)目录R语言ggplot2可视化树状图、层次聚类系统树图、树状图根据给定的距离度量将相似点分组在一起、并根据点......
  • 20章12节:多元统计分析的可视化扩展包,从主成分分析到时间序列,从K-means聚类到广义线性
    多元统计分析中的数据可视化是科学研究与分析中不可或缺的一部分,它不仅能够帮助研究者直观地理解数据结构,还能为复杂的统计模型提供清晰的解释。然而,传统的R语言制图方法往往需要较高的学习成本,尤其是对于需要从多种统计包中提取结果并进行可视化的任务。基于此背景,作为一个构......
  • Python用K-Means均值聚类、LRFMC模型对航空公司客户数据价值可视化分析指标应用
    全文链接:https://tecdat.cn/?p=38708原文出处:拓端数据部落公众号分析师:YulingFang信息时代的来临使得企业营销焦点从产品中心转向客户中心,客户关系管理成为企业的核心问题。客户关系管理的关键是客户分群,通过客户分群,区分无价值客户和高价值客户,同时更好的了解客户的特征,使企......
  • 基于Python+flask的豆瓣音乐聚类分析可视化
    一、项目概述项目名称:豆瓣音乐聚类分析可视化项目简介:该项目基于Flask框架开发,用于提供音乐数据分析与可视化功能,涉及用户管理、音乐数据爬取、聚类分析及其可视化展示。系统包含用户和管理员角色,提供丰富的页面功能。主要功能:用户登录与注册音乐数据展示与搜索管理......
  • 带你从入门到精通——机器学习(九. 聚类算法)
    建议先阅读我之前的博客,掌握一定的机器学习前置知识后再阅读本文,链接如下:带你从入门到精通——机器学习(一.机器学习概述)-CSDN博客带你从入门到精通——机器学习(二.KNN算法)-CSDN博客带你从入门到精通——机器学习(三.线性回归)-CSDN博客带你从入门到精通——机器学习(四.逻......
  • K-均值聚类算法
    K-均值聚类算法是一种常用的无监督学习算法,用于将数据集划分为K个互不重叠的簇。该算法的目标是最小化数据点到其所属簇中心点的平方距离的总和。算法步骤如下:随机选择K个中心点作为初始簇中心。对每个样本点,计算其到各个簇中心点的距离,并将其分配给距离最近的簇。更新簇中心......
  • K均值聚类算法的入门指南
    大家好!今天我们来聊聊机器学习中的一个经典算法——K均值聚类(K-MeansClustering)我们从两个方面来进行了解:什么是K均值聚类?为什么叫K均值?什么是K均值聚类?K均值聚类(K-MeansClustering)是一种非常流行的机器学习算法,用于将数据集分成K个不同的组,这些组被称为“簇”。这个......
  • Python基于K-Means聚类模型进行餐饮客户消费数据行为分析项目实战
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后关注获取。1.项目背景在当今竞争激烈的餐饮行业中,了解和分析顾客的消费行为对于提升客户满意度、优化菜单设计、提高运营效率以及制定精准营销策略至关重要。随着数......