k中心点聚类算法伪代码_第十三篇:K-Means 聚类算法原理分析与代码实现

本文介绍了K-Means聚类算法,这是一种经典的非监督学习方法,用于无标签数据的分类。通过实例解释了如何利用聚类策略进行数据分析,特别是选举场景的应用。文章提供了算法的伪代码,并展示了Python代码实现,包括随机初始化质心和数据点分配的详细步骤。最后提到了K-Means的性能优化,如二分K-Means算法,以及算法的局限性,如对初始质心和K值敏感。
摘要由CSDN通过智能技术生成

前言

在前面的文章中,涉及到的机器学习算法均为监督学习算法。

所谓监督学习,就是有训练过程的学习。再确切点,就是有 "分类标签集" 的学习。

现在开始,将进入到非监督学习领域。从经典的聚类问题展开讨论。所谓聚类,就是事先并不知道具体分类方案的分类 (允许知道分类个数)。

本文将介绍一个最为经典的聚类算法 - K-Means 聚类算法以及它的两种实现。

现实中的聚类分析问题 - 总统大选

假设 M 国又开始全民选举总统了,目前 Mr.OBM 的投票率为48%(投票数占所有选民人数的百分比),而 Mr.MKN 的为47%,而剩下的一部分出于【种种原因】没有投票。

做为其中某个阵营的人,自然是希望能够尽可能的争取到这些剩余的票 -因为这完全可能影响最终选举结果。

然而,你不可能争取到这些人的所有投票,因为你满足某个群体的人,也许就伤害到了另一群人的利益。

一个很不错的想法是将这些人分为 K 个群体,然后主要对其中人数最多的几个群体做工作。

-- 这,就需要使用到聚类的策略了。

聚类策略是搜集剩余选民的用户信息(各种满意/不满意的信息),将这些信息输入进聚类算法,然后对聚类结果中人数最多的簇的选民做思想工作。

可能你会发现某个簇的选民都是一个社区的,一个宗教信仰的,或者具有某些共性。这样就方便各种各样的拉票活动了。

K-Means 聚类算法

K,指的是它可以发现 K 个簇;Means,指的是簇中心采用簇所含的值的均值来计算。

下面先给出伪代码:

1 创建 k 个点作为起始质心 (随机选择):2 当任意一个点的簇分配结果发生改变的时候:3 对数据集中的每个数据点:4 对每个质心:5 计算质心与数据点之间的距离6 将数据点分配到距其最近的簇7 对每一个簇:8 求出均值并将其更新为质心

然后是一个具体实现Python程序:

1 #!/usr/bin/env python

2 #-*- coding:UTF-8 -*-

3

4 '''

5 Created on 20**-**-**6

7 @author: fangmeng8 '''

9

10 from numpy import *

11

12 #==================================

13 #输入:

14 #fileName: 数据文件名(含路径)

15 #输出:

16 #dataMat: 数据集

17 #==================================

18 defloadDataSet(fileName):19 '载入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值