适合初学者易懂的机器学习算法之k-means(k均值)Python代码实现

本文介绍了k-means算法,一种无监督学习的聚类方法,通过步骤演示如何使用该算法进行数据分组。文章还对比了k-means与k-NN的区别,并提供了一个简单的Python代码实现示例。
摘要由CSDN通过智能技术生成

k-means算法中文名叫做k均值。它是一种聚类算法,这是什么意思呢?就是现在我有一堆数据,但是我知道这些数据有k个类。但是具体每一个数据点所属分类我就不知道了。此时就需要用k-means聚类算法它可以把原先的数据分成k个部分,注意这k个部分包含的数据点的数量不一定相等的。相似的数据就聚在一起

k-means算法操作步骤

1. 设定k的取值(你觉得有多少个类就设置是多少,不知道那就把点描出来你分析下有几个类)
2. 随机选取k个点。将这k个点作为聚类中心点。
3. 遍历所有点计算该点到那k个聚类中心点的距离。此时有k个距离,哪个距离最短,就认为当前这个点是属于这个聚类。
4. 执行完3.后,我们得到了k个聚类。现在我们需要重新计算聚类中心。此时聚类中心就是当前这个聚类的包含的点的平均值。也就是说各个点加起来取平均作为当前聚类的中心(此时的聚类中心已经不是数据中的某个点了,而是一个坐标值)。
5. 重复3.4.这两个步骤很多次。(至于多少次你自己决定)

k-meansk-NN有什么区别?
答:

  • k-means是无监督学习算法。什么叫做无监督学学习?就是给一堆水果的照片给你计算机看,告诉它一共有k种水果。至于这k种水果到底是什么计算机是不知道的。它只知道把相似的照片分类在一起凑成k个类就可以。然后新来一张照片它就计算这张照片到k个聚类中心的距离,哪个近就认为新来这个照片属于哪个聚类。至于它具体是什么水果算法是不知道的。
  • k-NN(k近邻算法)是有监督学习算法。你得告诉它什么每张照片是什么水果,然后新来一张照片它就计算这张照片与其他所有照片的距离(假设可以计算),然后它统计下和它最近(最相似的)那k张照片是哪种水果。如果那k个照片“苹果”这个标签出现次数最多,那么认为新来的照片就是苹果。如果不懂kNN可以看这篇文章易懂机器学习(1) k近邻算法

数据图演示k-means的操作步骤

1. 加载数据(分析有几个聚类,k的值等于聚类数量)

现在我们分析出大致有2个类。于是我们设置k=2
在这里插入图片描述

2. 随机选k个点作为聚类中心

在本文章第1.步提到了k=2.所以我们随机选2个点作为聚类中心。可以看到下面有两个点已经被选中作为聚类中心了。一个是绿色一个是橘黄。
在这里插入图片描述

3. 遍历所有点计算这些点到k个聚类中心点的距离

举个例子,现在我们到了一个点。然后计算了它到两个聚类中心的距离。可以看到它离绿色点比离橘黄色近。所以认为当前这个点属于绿色这个点所在的聚类里面。我们需要遍历所有点。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值