MySQL 聚类合并算法_机器学习之聚类算法

一、引言

聚类算法是无监督学习,只需要数据,而不需要标记结果,通过学习训练,用于发现共同的群体。本文将介绍几种常见的聚类算法,包括K-means、层次聚类和GMM高斯混合模型等。

2d349c2b6e610608587e0111104205de.png

08f0a0d70dabdf29496bd545be9d0139.png

1、聚类算法是什么

给定n个训练样本(未标记),如:{X1,X2,…,Xn},同时给定聚类的个数K。

目标:把比较“接近”的样本放到一个簇类(cluster)里,总共得到K个簇类(cluster)。

2、如何衡量样本距离

下面是几个最常用的距离计算公式:

(1)欧氏距离:

19e74ff5a15f4d669722f097d9adc3a7.png

(2)曼哈顿距离

c5f64e60fc9c943b1c2f5350fe1807c6.png

(3)核函数映射后距离

8b84f0f5e5f22082997cee2850052b73.png

3、如何评价聚类好坏

类间距高,类内距低,通俗地说就是“抱团紧不紧,异族远不远”。

4、应用场景

(1)图片检索:图片内容相似度

(2)图片分割:图片像素相似度

(3)网页聚类:文本内容相似度

(4)社交网络聚类:(被)关注人群、兴趣

(5)电商用户聚类:点击/加车/购买商品、行为序列等

二、K-means算法

K-means算法是使用最普遍,最重要的聚类算法之一。

已知观测集2730974584852a817e6ca24fda937c5896540888,其中每个观测都是一个

D

-维实向量,k-平均聚类要把这a601995d55609f2d9f5e233e36fbe9ea26011b3b个观测划分到k个集合中(k≤n),使得组内平方和(WCSS within-cluster sum of squares)最小。换句话说,它的目标是找到使得下式满足的聚类de6e810a93f67802ecb603ee0e3324005c6e583e

debd28209802c22a6e6a1d74d099f728e6bd17a4

1、算法原理

e2582eaa2027b934431f1474ecc1a22c.png

迭代收敛定义:

(1)聚类中心不在有变化

(2)每个样本到对应聚类中心的距离之和不再有很大变化

损失函数:

假定

60193c78a07c2abcecce612dae20d46b.png为K个聚类中心,用

ff11920a075e0d9ddb89b4a1d5a2c6d0.png表示

8658e426eccf604678b6fdcbb4645513.png是否属于聚类K,则损失函数定义如下:

88edb602d058b5e962830cfde7cb3d9c.png

最小化损失函数的过程是一个NP问题。上面的迭代,是收敛到局部最低点的过程。

2、优缺点

K-means算法优点:

(1)计算复杂度低,为O(Nmq),其中N是数据总量,m是类别(即k),q是迭代次数

(2)原理简单,实现容易,容易解释

(3)聚类效果不错

K-means算法缺点:

(1)对异常值(噪声)敏感,可以通过一些调整(如中心值不直接取均值,而是找均值最近的样本点代替)

(2)需要提前确定K值(提前确定多少类)

(3)分类结果依赖于分类中心的初始化(可以通过进行多次K-means取最优来解决)

(4)属于“硬聚类”,每个样本只能有一个类别。其他的一些聚类方法(GMM或者模糊K-means允许“软聚类”)

(5)对于团状的数据点集区分度好,对于带状(环绕)等非凸形状不太好。(用谱聚类或做特征映射)

3、改进算法

如:K-means++等

4、动手用python实现K-means算法

样本数据:

1.658985 4.285136

-3.453687 3.424321

4.838138 -1.151539

-5.379713 -3.362104

0.972564 2.924086

-3.567919 1.531611

0.450614 -3.302219

-3.487105 -1.724432

2.668759 1.594842

-3.156485 3.191137

3.165506 -3.999838

-2.786837 -3.099354

4.208187 2.984927

-2.123337 2.943366

0.704199 -0.479481

-0.392370 -3.963704

2.831667 1.574018

-0.790153 3.343144

2.943496 -3.357075

-3.195883 -2.283926

2.336445 2.875106

-1.786345 2.554248

2.190101 -1.906020

-3.403367 -2.778288

1.778124 3.880832

-1.688346 2.230267

2.592976 -2.054368

-4.007257 -3.207066

2.257734 3.387564

-2.679011 0.785119

0.939512 -4.023563

-3.674424 -2.261084

2.046259 2.735279

-3.189470 1.780269

4.372646 -0.822248

-2.579316 -3.497576

1.889034 5.190400

-0.798747 2.185588

2.836520 -2.658556

-3.837877 -3.253815

2.096701 3.886007

-2.709034 2.923887

3.367037 -3.184789

-2.121479 -4.232586

2.329546 3.179764

-3.284816 3.273099

3.091414 -3.815232

-3.762093 -2.432191

3.542056 2.778832

-1.736822 4.241041

2.127073 -2.983680

-4.323818 -3.938116

3.792121 5.135768

-4.786473 3.358547

2.624081 -3.260715

-4.009299 -2.978115

2.493525 1.963710

-2.513661 2.642162

1.864375 -3.176309

-3.171184 -3.572452

2.894220 2.489128

-2.562539 2.884438

3.491078 -3.947487

-2.565729 -2.012114

3.332948 3.983

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值