详解k-means++

news/2024/11/8 14:37:14/

一、概述

定义:k-means++是一种为k-means聚类算法选择初始值(或“种子”)的算法。它是NP-hard k-means问题的一种近似算法,它是一种避免标准k-means算法有时发现的较弱聚类的方法。

K-means与K-means++:原始K-means算法最开始随机选取数据集中K个点作为聚类中心,而K-means++按照如下的思想选取K个聚类中心:假设已经选取了n个初始聚类中心(0<n<K),则在选取第n+1个聚类中心时:距离当前n个聚类中心越远的点会有更高的概率被选为第n+1个聚类中心。在选取第一个聚类中心(n=1)时同样通过随机的方法。可以说这也符合我们的直觉:聚类中心当然是互相离得越远越好。这个改进虽然直观简单,但是却非常得有效。

二、k-means算法

首先使用欧式距离平方作为样本之间的距离即有 d ( x i , x j ) = ∣ ∣ x i − x j ∣ ∣ 2 2 d(x_{i},x_{j})=||x_{i}-x_{j}||^{2}_{2} d(xi,xj)=xixj22,其中 x i , x j x_{i},x_{j} xi,xj表示样本

1.算法步骤

(1)从样本集中随机抽取K个样本作为初始均值向量
(2)计算样本与各均值向量的距离,根据样本距离最近的均值向量,将样本划入相应的簇
(3)计算新的均值,即聚内平均值 1 / ∣ C i ∣ ∑ x ∈ C i x 1/|C_{i}|\sum_{x\in C_{i}}x 1/CixCix,将均值向量更新。
(4)重复2,3直到均值向量均为更新

2.k-means

k-means聚类就是求解最优化问题
m i n E = ∑ i = 1 k ∑ x ∈ C i ∣ ∣ x − u i ∣ ∣ 2 2 min\ E=\sum_{i=1}^{k}\sum_{x\in C_{i}}||x-u_{i}||^{2}_{2} min E=i=1kxCixui22
其中 C i C_{i} Ci为第 i i i簇, u i u_{i} ui为第 i i i个簇的均值向量, x x x为样本

3.NP-hard问题

相似的样本被聚到同类时,损失函数最小,上式中的目标函数的最优化能达到聚类的效果,但是此问题为组合优化问题,n个样本被分到k类,所有可能的分法的数目为
S ( n , k ) = i / k ! ∑ l = 1 k ( − 1 ) k − l C k l k n S(n,k)=i/k!\sum_{l=1}^{k}(-1)^{k-l}C_{k}^{l}k^{n} S(n,k)=i/k!l=1k(1)klCklkn
此数字为指数级,则k-means聚类的最优解求解问题问NP-hard问题

三、k-means++算法

1.算法步骤

(1)在数据点之间随机选择一个中心 u 1 u_{1} u1
(2)对于尚未选择的每个数据点 x x x,计算 ∑ i = 1 i = j d ( x , u i ) \sum_{i=1}^{i=j}d(x,u_{i}) i=1i=jd(x,ui),即x与已经选择的最接近中心之间的距离。
(3)使用加权概率分布随机选择一个新的数据点作为新中心,其中选择的点 x x x的概率与 ∑ i = 1 i = j d ( x , u i ) \sum_{i=1}^{i=j}d(x,u_{i}) i=1i=jd(x,ui)成正比。
(4)重复步骤2和3,直到选择了 k k k个中心 ( 即 j = k ) (即j=k) (j=k)
(5)现在已经选择了初始中心,继续使用标准k均值聚类。

2.例子

假设数据集有8个样本,k为2,分布及其对应序号如下
在这里插入图片描述
假设随机抽取6号点被选择为第一个初始聚类中心,即为 u 1 u_{1} u1,那在进行每个样本的 d ( x , u 1 ) d(x,u_{1}) d(x,u1)和被选择为第二个聚类中心的概率如下表所示

序号
d ( x , u 1 ) d(x,u_{1}) d(x,u1)8135101021
p ( x ) p(x) p(x)0.20.3250.1250.250.02500.050.025

其中的P(x)就是每个样本被选为下一个聚类中心的概率
从上表可以直观的看到第二个初始聚类中心是1号,2号,3号,4号中的一个的概率为0.2+0.325+0.125+0.25=0.9。而这4个点正好是离第一个初始聚类中心6号点较远的四个点。这也验证了K-means的改进思想:即离当前已有聚类中心较远的点有更大的概率被选为下一个聚类中心。

2.其他

尽管算法中的初始选择需要花费额外的时间,但是k均值部分本身在播种后会很快收敛,因此该算法实际上减少了计算时间。

四、参考文献

1.周志华《机器学习》,清华大学出版社
2.李航《统计学习方法》,清华大学出版社
3.维基百科k-means++
4.k-means算法的三种改进介绍与对比


http://www.ppmy.cn/news/233116.html

相关文章

K近邻

K近邻 k近邻法&#xff08;k-Nearest Neighbor&#xff0c;简称kNN&#xff09;是一种基本的分类与回归方法。 分类问题&#xff1a;对新的样本&#xff0c;根据其k个最近邻的训练样本的类别&#xff0c;通过多数表决等方式进行预测。回归问题&#xff1a;对新的样本&#xf…

华为机顶盒E6108 V9-V9U-V92-V97免拆机-刷机固件及教程

固件特点&#xff1a; 1、不带ROOT权限&#xff0c;适用于华为EC6108V9 4.4.2版本 非高安版&#xff08;CA&#xff09; &#xff1b; 2、调出原厂固件屏蔽的wifi&#xff0c;开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、无开机广告&#xff0c;无系统更新…

android机顶盒root,[Android]机顶盒root脚本:SupersuSU获取完美Root权限万能方法,解决二进制更新问题 | 樱花庄...

本方法是自己结合网络方法改良来的无需U盘&#xff0c;电脑一键搞定前提&#xff1a;打开adb(目前测试安卓4.4&#xff0c;其他高版本没测试环境&#xff0c;理论上高版本安装 换高版本SuperSU也适用)网络方法的弊端是在某些盒子上&#xff0c;特别是四川电信等盒子限制安装软件…

电信机顶盒ty1208-z刷linux(armbian)

前情&#xff1a;某天我在电信的仓库的垃圾堆里面翻到了一台电信的机顶盒&#xff0c;是烽火的ty1208-z&#xff0c;查了一下配置&#xff0c;是1g ram 8g emmc&#xff0c;s905m的cpu&#xff0c;于是突发奇想能不能像N1、玩客云一样刷入armbian。 折腾的大致过程&#xff1a…

华为盒子EC6108V9A-RK3128-1+4G 免拆机 卡刷固件及教程

固件特点&#xff1a; 1、调出原厂固件屏蔽的wifi&#xff0c;开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 2、无开机广告&#xff0c;无系统更新&#xff0c;不在被强制升级&#xff1b;修改dns&#xff0c;三网通用&#xff1b; 3、大量精简内置的没用的软件&am…

aaa服务器显示认证失败,华为aaa认证案例-电信华为机顶盒50%通路故障或AAA认证失败怎么回...

华为交换机AAA配置与管理 内容来自用户:wanhyl 一、基础 1、AAA是指&#xff1a;authentication(认证)、authorization(授权)、accounting(计费)的简称&#xff0c;是网络安全的一种管理机制&#xff1b;Authentication是本地认证/授权&#xff0c;authorization和accounting是…

无线网盒子怎么连接电脑连接服务器,网络机顶盒怎么用设置连接wifi?图文详解手把手教你...

小编是过来人&#xff0c;最先接触机顶盒的时候&#xff0c;不知如何将盒子联网&#xff0c;ADSL连接到机顶盒上并不能自动获取IP&#xff0c;这给初次接触盒子的用户造成了不小的困惑。想必大家的家里都有WiFi吧&#xff0c;就是无线路由器&#xff0c;有了它&#xff0c;就好…

电视显示通路故障或服务器不可用,我家的华为机顶盒连不上网,显示50%通路故障或AAA认证失败,这是怎回事?...

满意答案 dongbing_ 2020.02.17 采纳率:59% 等级:8 已帮助:461人 一、进入无线路由器的设置界面 1、正常连接路由器的情况下(路由器通电,一条网线连接在路由器的LAN任何一个口,另一端连接到电脑),打开浏览器并输入无线路由器的IP。此IP地址会因为路由器的品牌不同而略…