Kmeans 算法理论和Python实现(一)——简单K-Means实现

本文深入探讨了K-means聚类算法的原理,包括其在无监督学习中的应用,算法流程,以及Python实现细节。同时,文章分析了K-means算法的优缺点,并提出了性能提升的方法。

#1. Kmeans算法原理
##1.1 Kmeans算法介绍
聚类算法是一种无监督学习方法,将相似的对象归到同一个簇中。在K-Means算法中,我们将所有的数据划分到K个不同的簇中并且每一个簇的中心是该簇中所有的节点的均值计算得到,因此称为K—均值算法。

在机器学习中聚类和分类算法最大的不同在于,分类的目标事先是已知的,而聚类则不同,聚类的目标是未知的。分类产生的结果是分类前已经知晓的结果,而聚类产生的结果是未知的,因此聚类别称为无监督的学习方式。
##1.2 Kmeans算法原理
K-Means算法是发现给定数据集中的K个簇而簇的个数K是用户给定的数据信息,每一个簇通过簇的质心来描述,质心是通过该类中的所有点求平均值得到。
在K-Means算法中,算法的流程如下:

(1)随机选择K个点作为初始质心

(2)对所有的点计算寻找最近的质心为该点所属的质心,并计算到该质心的距离。

(3)对各个节点划分好的点通过求该簇所有节点的均值计算该簇新的质心。

(4)重复步骤(2)对所有的节点重新进行划分,直到所有的簇的质心不再改变。

在计算节点与质心之间的距离时,我们通常采用欧式距离进行计算计算公式如下:
d i s t = s q r t ( ( x 1 − y 1 ) 2 + ( x 2 − y 2 ) 2 + . . . + ( x i − y i ) 2 ) dist=sqrt((x_1-y_1)^2+(x_2-y_2)^2+...+(x_i-y_i)^2) dist=sqrt((x1y1)2+(x2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值