无涯教程-聚类算法 - K-Means

这篇具有很好参考价值的文章主要介绍了无涯教程-聚类算法 - K-Means。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

K-均值聚类算法计算质心并进行迭代,直到找到最佳质心为止,它假定群集的数目是已知的,它也称为扁平聚类算法。通过算法从数据中识别出的簇数以K均值中的" K"表示。

在该算法中,将数据点分配给群集,以使数据点和质心之间的平方距离之和最小。应当理解,簇内的较少变化将导致相同簇内的更多相似数据点。

K均值算法

无涯教程可以通过以下步骤来了解K-Means聚类算法的工作原理-

第1步   - 首先,需要指定需要由该算法生成的簇数K。

第2步   - 接下来,随机选择K个数据点并将每个数据点分配给一个群集,简单来说,就是根据数据点的数量对数据进行分类。

第3步   - 现在,它将计算聚类质心。

第4步   - 接下来,继续迭代以下步骤,直到找到最佳质心为止,这是将数据点分配给不再变化的群集的情况

  •       4.1 - 首先,将计算数据点和形心之间的平方距离之和。

  •       4.2 - 现在,必须将每个数据点分配给比其他群集(质心)更近的群集。

  •       4.3 - 最后,通过获取聚类的所有数据点的平均值来计算聚类的质心。

K均值遵循期望最大化方法来解决此问题,期望步骤用于将数据点分配给最近的群集,而最大化步骤用于计算每个群集的质心。

使用K-means算法时,需要注意以下事项-

  • 在使用包含K-Means的聚类算法时,建议对数据进行标准化,因为此类算法使用基于距离的测量来确定数据点之间的相似性。

  • 由于K-Means的迭代性质和质心的随机初始化,K-Means可能停留在局部最优中,而可能不会收敛于全局最优。因此建议使用不同的质心初始化。

代码实现

以下两个实施K-Means聚类算法的示例将帮助无涯教程更好地理解-

K-Means示例1

这是了解k均值如何工作的简单示例。在此示例中,将首先生成包含4个不同Blob的2D数据集,然后将应用k-means算法查看输出。

首先,将从导入必要的包开始-

%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
import numpy as np
from sklearn.cluster import KMeans

以下代码将生成2D,其中包含四个Blob-

from sklearn.datasets.samples_generator import make_blobs
X, y_true=make_blobs(n_samples=400, centers=4, cluster_std=0.60, random_state=0)

接下来,以下代码将帮助可视化数据集-

plt.scatter(X[:, 0], X[:, 1], s=20);
plt.show()

接下来,使KMeans为对象,并提供聚类数量,训练模型并按以下方式进行预测-

kmeans=KMeans(n_clusters=4)
kmeans.fit(X)
y_kmeans=kmeans.predict(X)

现在,借助以下代码,可以绘制和可视化由k-means Python估计器选择的群集中心-

from sklearn.datasets.samples_generator import make_blobs
X, y_true=make_blobs(n_samples=400, centers=4, cluster_std=0.60, random_state=0)

接下来,以下代码将帮助可视化数据集-

plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=20, cmap=summer)
centers=kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c=blue, s=100, alpha=0.9);
plt.show()

K-Means示例2

让无涯教程转到另一个示例,在该示例中,将对简单数字数据集应用K均值聚类, K-means将尝试在不使用原始标签信息的情况下识别相似的数字。

首先,将从导入必要的包开始-

%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
import numpy as np
from sklearn.cluster import KMeans

接下来,从sklearn加载数字数据集并使其成为对象。还可以在此数据集中找到行数和列数,如下所示:

from sklearn.datasets import load_digits
digits=load_digits()
digits.data.shape
(1797, 64)

上面的输出显示此数据集包含1797个具有64个特征的样本。

可以像上面的示例1一样执行聚类-

kmeans=KMeans(n_clusters=10, random_state=0)
clusters=kmeans.fit_predict(digits.data)
kmeans.cluster_centers_.shape
(10, 64)

上面的输出显示K-means创建了具有64个特征的10个聚类。

fig, ax=plt.subplots(2, 5, figsize=(8, 3))
centers=kmeans.cluster_centers_.reshape(10, 8, 8)
for axi, center in zip(ax.flat, centers):
axi.set(xticks=[], yticks=[])
axi.imshow(center, interpolation=nearest, cmap=plt.cm.binary)

作为输出,将获得以下图像,该图像显示了通过k均值学习的聚类中心。

以下代码行将学习到的集群标签与在其中找到的真实标签匹配:

from scipy.stats import mode
labels = np.zeros_like(clusters)
for i in range(10):
   mask = (clusters == i)
   labels[mask] = mode(digits.target[mask])[0]

接下来,无涯教程可以检查准确性,如下所示:

from sklearn.metrics import accuracy_score
accuracy_score(digits.target, labels)
0.7935447968836951

上面的输出显示精度约为80%。

聚类算法 - K-Means - 无涯教程网无涯教程网提供K-均值聚类算法计算质心并进行迭代,直到找到最佳质心为止,它假定群集的数目是已知的...https://www.learnfk.com/python-machine-learning/machine-learning-with-python-clustering-algorithms-k-means.html文章来源地址https://www.toymoban.com/news/detail-682517.html

到了这里,关于无涯教程-聚类算法 - K-Means的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K-means聚类算法原理及实现

    1.1概念 聚类分析,也称为分割分析或分类分析,可将样本数据分成一个个组(即簇)。同一簇中的对象是相似的,不同簇中的对象则明显不同。 Statistics and Machine Learning Toolbox™ 提供了几种聚类方法和相似性度量(也称为距离度量)来创建簇。此外,簇计算可以按照不同的计

    2024年03月18日
    浏览(44)
  • K-means聚类算法的三种改进(K-means++,ISODATA,Kernel K-means)介绍与对比

      目录  一、概述 二、经典K-means算法 三、K-means++算法 四、ISODATA算法 六、数据集测试       在本篇文章中将对四种聚类算法(K-means,K-means++,ISODATA和Kernel K-means)进行详细介绍,并利用数据集来真实地反映这四种算法之间的区别。       首先需要明确的是上述四种算法都属

    2024年01月23日
    浏览(51)
  • K-means聚类算法(附Python实现代码)

    本文的代码与数据地址已上传至github:https://github.com/helloWorldchn/MachineLearning 1、基于划分的聚类 划分算法的思想是,将给定待挖掘数据集中的数据对象划分成K组(k≤N,N代表数据集中对象数目),每一组表示一个聚类的簇。并且要满足任何一个数据对象仅可以属于一个聚类,

    2024年02月07日
    浏览(47)
  • 传统机器学习(三)聚类算法K-means(一)

    K-Means算法是无监督的聚类算法,它实现起来比较简单,聚类效果也不错,因此应用很广泛。K-Means基于欧式距离认为两个目标距离越近,相似度越大。 1.1.1 算法流程 (1)图a表达了初始的数据集, 假设k=2; (2)在图b中,随机选择两个k类的对应的类别质心,即图中的红色质

    2023年04月15日
    浏览(43)
  • K-means聚类算法及Python代码实现

    K-means聚类算法(事先数据并没有类别之分!所有的数据都是一样的) 1、概述 K-means算法是集简单和经典于一身的 基于距离的聚类算法 采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。 该算法认为类簇是由距离靠近的对象组成的,因此把得到

    2023年04月24日
    浏览(48)
  • K-Means(K-均值)聚类算法理论和实战

    目录 K-Means 算法 K-Means 术语 K 值如何确定 K-Means 场景 美国总统大选摇争取摆选民 电商平台用户分层 给亚洲球队做聚类 ​编辑 其他场景 K-Means 工作流程 K-Means 开发流程 K-Means的底层代码实现 K-Means 的评价标准 对于 n 个样本点来说,根据距离公式(如欧式距离)去计 算它们的

    2024年02月11日
    浏览(40)
  • 【机器学习】K-means聚类算法:原理、应用与优化

    一、引言 1、简述聚类分析的重要性及其在机器学习中的应用   聚类分析,作为机器学习领域中的一种无监督学习方法,在数据探索与知识发现过程中扮演着举足轻重的角色。它能够在没有先验知识或标签信息的情况下,通过挖掘数据中的内在结构和规律,将数据对象自动

    2024年04月13日
    浏览(50)
  • K-means聚类算法原理、步骤、评价指标和实现

    1、聚类 聚类与分类不同,聚类分析分通过分析大量含有一定规律但杂乱数据,得到数据间内在的逻辑,将杂乱的数据按照所得的数据规律划分成不同的种类。K-measn、DBSCAN和层次是当前广泛使用的三种聚类方法。以下对三种方法进行分析,选择适合的聚类方法。 方法 K-means

    2024年02月07日
    浏览(57)
  • 【聚类算法】带你轻松搞懂K-means聚类(含代码以及详细解释)

    聚类是一个将数据集中 在某些方面相似的数据成员 进行分类组织的过程,聚类就是一种发现这种内在结构的技术,聚类技术经常被称为 无监督学习 。 k均值聚类是最著名的划分聚类算法,由于简洁和效率使得他成为所有聚类算法中最广泛使用的。给定一个数据点集合和需要

    2024年02月01日
    浏览(37)
  • 计算机视觉:聚类算法(K-Means)实现图像分割

    什么是K-means聚类? K-means聚类是一种无监督学习算法,用于将一组数据划分为K个不同的类别或簇。它基于数据点之间的相似性度量,将数据点分配到最接近的聚类中心。K-means算法的目标是最小化数据点与其所属聚类中心之间的平方距离和。 K-means聚类在图像分割中的应用 在

    2024年02月02日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包