用Python进行机器学习(4)K-Means算法

K-Means算法即K均值算法, 它属于一种经典的聚类算法, 何为聚类算法呢, 就是将数据集中样本划分成若干组, 这里的组又被称作簇, 英文名是。聚类算法是一种无监督学习技术, 故而它无需给数据打标签, 完全依据数据自身的特征来进行分组的。

最早于1956年被给出的算法是K-Means算法, 在1967年首次有了"K-Means"这个名称的确定, 很容易造成初学者将KNN和K-Means弄混淆的情况, 这里针对两者的不同来做一下解释:

首先, KNN属于监督学习算法, 因而它要借助训练数据预先进行打标签这一操作, 然而, K-Means是依据数据自身所具备的特征去自动开展分类工作的, 它归属于无监督学习算法, 进而, 它是不需要提前进行打标签的。

首先, 第二点, KNN常常被运用在分类以及回归方面, 它属于聚类算法, 但是并且, 其所能够抵达的效果也全然不一样, 存在差异。

首先, 第三点, KNN里的K, 属于数据周边的K个数据, 其次, K - Means当中的K, 是用于将数据划分成K个簇, 然后, 尽管这两种算法都存在K, 然而, K的意义全然不一样。

然后介绍下K-Means算法的基本流程:

一开始, 随机去初始化K个中心点, 当然这K个中心点不会彼此距离太近, 不然可就很难开展聚类操作了。

第二步, 距离概念在此处涉及, 要将每一数据点分配至离其最近的中心点, 如此最初的簇便形成了, 此处所涉及的距离和KNN算法里的距离是同一回事, 例如可选择曼哈顿距离, 或者欧氏距离, 又或者切比雪夫距离等。

首先是第三步, 要对每个簇的中心点重新进行计算, 而这个中心点又被叫做质心, 在此处, 乃是借助求均值的操作来达成的, 这也正好就是K-Means中的Means这个名字的由来。

瞧, 请来看有一个具体的范例, 比如说, 好像我们打算要去得到四个簇, 接着这里具有 300 个样本, 那么此时我们便能够去使用如同下面这样子的代码:

复制代码
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
# 生成示例数据
X, y = make_blobs(
    n_samples=300, # 样本数量
    centers=4, # 簇的数量
    cluster_std=0.60, # 簇的标准差
    random_state=0 # 随机种子
)
# 创建 KMeans 模型并拟合数据
kmeans = KMeans(n_clusters=4, init='k-means++', max_iter=300, n_init=10, random_state=0)
# 训练模型并预测每个样本所属的簇
pred_y = kmeans.fit_predict(X)
# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], c=pred_y, s=50, cmap='viridis')
# 绘制聚类中心
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=200, c='red', alpha=0.7, label='Cluster Centers')
plt.title('K-Means Clustering')
plt.xlabel('feature 1')
plt.ylabel('feature 2')
plt.legend()
plt.show()

因为核心功能全都标注有注释,因而此处便不再阐述代码的用途了。能够瞧见我们生成了四个簇, 那些簇依靠不同颜色展开区分, 并且运用红色对簇的中心予以标明, 情况如下:

鉴于K-Means无需预先给数据打标签, 故而它颇适用于大规模数据, 并且其可解释性颇为突出, 毕竟簇的中心即为特征代表, 正因如此该算法适于譬如客户分群、图像分割、异常检测等场景。

相关推荐
workflower41 分钟前
人形机器人“手”是关键
人工智能·机器学习·机器人·无人机
浪兎兎1 小时前
【机器学习】决策树 随机森林
决策树·随机森林·机器学习
咖啡星人k1 小时前
2026 AI Agent 记忆系统:让智能体告别“三秒失忆“,像人类一样越用越懂你(MonkeyCode 实战)
人工智能·深度学习·机器学习·语言模型·自然语言处理
墨染天姬1 小时前
[人工智能训练师]机器学习的流程
人工智能·机器学习
大模型码小白1 小时前
MCP协议开发实战:从零搭建AI Agent工具链
运维·人工智能·算法·机器学习·自动化
Omics Pro1 小时前
整合多组学分析+生物医学发现!对话式多智能体AI
数据库·人工智能·mysql·机器学习·自然语言处理
梦想的颜色2 小时前
ComfyUI 深度硬核科普:节点式 AI 生成框架完整实战(安装、原理、使用场景、避坑)
人工智能·机器学习·计算机视觉·aigc·comfyui·ai视频·图生视频
流浪0012 小时前
大模型技术全景(一):AI、机器学习、深度学习,三者的关系到底是什么?一文搞懂
人工智能·深度学习·机器学习
sel_914 小时前
【PEFT】参数高效微调(PEFT)技术详解:从原理到 LoRA/QLoRA 实战
人工智能·python·深度学习·算法·机器学习·参数高效微调