Kmeans算法及简单案例

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

Kmeans算法及简单案例

Kmeans算法流程

  1. 选择聚类的个数k.
  2. 任意产生k个聚类,然后确定聚类中心,或者直接生成k个中心。
  3. 对每个点确定其聚类中心点。
  4. 再计算其聚类新中心。
  5. 重复以上步骤直到满足收敛要求。(通常就是确定的中心点不再改变。)

Kmeans算法流程案例

将下列数据点用K-means方法进行聚类(这里使用欧式距离作为度量,K取值为2)
Kmeans算法及简单案例
P1~P15这15个数据点的二维坐标图如下:
Kmeans算法及简单案例

  1. 指定P1、P2为初始质心
    Kmeans算法及简单案例

  2. 通过距离公式将分别计算各点到质心P1,P2数据点距离:
    Kmeans算法及简单案例

  3. 选取距离较近的点整理进入相应队列:
    Kmeans算法及简单案例

  4. 计算出新一轮的每一簇队列中心(质心/平均值)
    Kmeans算法及简单案例

  5. 重复上述步骤2、3,开始新一轮迭代,算距离,取最近:
    算距离
    Kmeans算法及简单案例
    取最近
    Kmeans算法及简单案例
    再次选取距离较近的点整理进入相应队列:
    Kmeans算法及简单案例

  6. 当每次迭代结果不变时,认为算法收敛,聚类完成:K-Means一定会停下,不可能陷入一直选质心的过程。
    Kmeans算法及简单案例

代码案例1:不同数据集的k-means聚类

随机创建不同二维数据集作为训练集,并结合k-means算法将其聚类,你
可以尝试分别聚类不同数量的簇,并观察聚类效果:

  1. 生成数据
# 导包
import numpy as np
import matplotlib.pyplot as plt
from sklearn import metrics
from sklearn.datasets.samples_generator import make_blobs
# 生成数据展示
# X为样本特征,Y为样本簇类别, 共1000个样本,每个样本4个特征,共4个簇,簇中心在[-1,-1], [0,0],[1,1], [2,2], 簇方差分别为[0.4, 0.2, 0.2]
X, y = make_blobs(n_samples=1000, n_features=2, centers=[[-1,-1], [0,0], [1,1], [2,2]], cluster_std=[0.4, 0.2, 0.2, 0.2], 
                  random_state =9)
plt.scatter(X[:, 0], X[:, 1], marker='o')
plt.show()

Kmeans算法及简单案例
2. 使用Kmeans聚类查看结果

from sklearn.cluster import KMeans

for k in range(2,6):
    y_pred = KMeans(n_clusters=k, random_state=9).fit_predict(X)
    plt.scatter(X[:, 0], X[:, 1], c=y_pred)
    plt.show()

Kmeans算法及简单案例

SKlearn的K-means API参数简介:

KMeans中的默认参数
Kmeans算法及简单案例
Kmeans算法及简单案例
Kmeans算法及简单案例
Kmeans 总结:
事先确定常数K,常数K意味着最终的聚类类别数,首先随机选定初始点为质心,并通过计算每一个样本与质心之间的相似度(这里为欧式距离),将样本点归到最相似的类中,接着,重新计算每个类的质心(即为类中心),重复这样的过程,直到质心不再改变,最终就确定了每个样本所属的类别以及每个类的质心。由于每次都要计算所有的样本与每一个质心之间的相似度,故在大规模的数据集上,K-Means算法的收敛速度比较慢。文章来源地址https://www.toymoban.com/news/detail-468646.html

到了这里,关于Kmeans算法及简单案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • KMeans+DBSCAN密度聚类+层次聚类的使用(附案例实战)

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 1.KMeans聚类算法 2.DBSCAN密度聚类算法 3.层次聚类 4.实战案例 4.1数据集介绍 4.2加载数据

    2024年02月08日
    浏览(40)
  • 使用 pyspark 进行 Clustering 的简单例子 -- KMeans

    K-means算法适合于简单的聚类问题,但可能不适用于复杂的聚类问题。此外,在使用K-means算法之前,需要对数据进行预处理和缩放,以避免偏差。 K-means是一种聚类算法,它将数据点分为不同的簇或组。Pyspark实现的K-means算法基本遵循以下步骤: 随机选择K个点作为初始质心。

    2024年02月06日
    浏览(41)
  • 机器学习---kMeans算法

    1. Load dataset 鸢(yuan1)尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据集,分为3类, 每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属 性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。

    2024年01月16日
    浏览(40)
  • 机器学习——Kmeans算法

    一、实验目的 学习 sklearn 模块中的 KMeans 算法 二、实验内容 学习 KMeans 算法,了解模型创建、使用模型及模型评价等操作 三、实验原理或流程 实验原理: K-means 算法是将样本聚类成 k 个簇 (cluster) ,具体算法描述如下 : 1 、随机选取 k 个聚类质心点 (cluster centroids) 为 2 、重复

    2024年02月11日
    浏览(40)
  • Kmeans算法(附代码)

    Kmeans算法是一个无监督机器学习算法。其基本作用就是将一堆杂乱、无序的数据归成类,是用户给定的数,它表示用户需要将数据分成个类。 首先将总的数据集中随机挑选出个数据,作为将来个类对应的质心(相当于每个类对应的老大,将来每个类的所有点都将其包围)。 从头

    2024年02月05日
    浏览(37)
  • Spark实现KMeans算法代码示例

    Spark实现K-Means算法代码示例-K-Means算法是一种基于距离的聚类算法,采用迭代的方法,计算出K个聚类中心,把若干个点聚成K类。MLlib实现K-Means算法的原理 K-Means算法是一种基于距离的聚类算法,采用迭代的方法,计算出K个聚类中心,把若干个点聚成K类。 MLlib实现K-Means算法的

    2024年02月12日
    浏览(36)
  • Matlab实现Kmeans聚类算法

    kmeans聚类算法是一种迭代求解的聚类分析算法。其实现步骤如下: (1) 随机选取K个对象作为初始的聚类中心 (2) 计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。 (3) 聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚

    2024年02月02日
    浏览(38)
  • Python——Kmeans聚类算法、轮廓系数(算法理论、代码)

    目录 1 Kmeans模型理论 1.1 K-均值算法(K-means)算法概述 1.2 距离度量 1.3 K-means算法流程 1.4 K值的选择 1.5 K-means的优点 1.6 K-means的缺点 1.7 聚类的评价指标 2 代码解释 3 实操  3.1 构建聚类数目为3的KMeans模型 3.2 占比饼图 3.3 轮廓系数值 3.4 使用for循环计算聚类个数为2至9时的轮廓

    2024年02月01日
    浏览(51)
  • 使用Kmeans算法完成聚类任务

     聚类任务  聚类任务是一种无监督学习任务,其目的是将一组数据点划分成若干个类别或簇,使得同一个簇内的数据点之间的相似度尽可能高,而不同簇之间的相似度尽可能低。聚类算法可以帮助我们发现数据中的内在结构和模式,发现异常点和离群值,简化数据表示,以

    2024年02月15日
    浏览(36)
  • KMeans算法与GMM混合高斯聚类

    K-Means是GMM的特例(硬聚类,基于原型的聚类)。假设多元高斯分布的协方差为0,方差相同。   K-Means算法思想 对于给定的样本集,按照样本间的距离,将样本集划分为K个簇。 簇内的点尽量紧密连接,而簇间的距离尽量的大。 本质上是个组合优化问题, 类似于将N个球分配到

    2023年04月16日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包