一个点是否在矩形内的算法_数据分析|聚类算法原理(1) kmeans

数据分析|聚类算法原理(1)  k-means

e1a05f8ee413136969fc5afb59bec8cf.png

前言

     这几天整理了一下之前的学习笔记,主要是关于聚类算法以及分类算法相关的原理。本文主要介绍聚类经典算法k-means的基本原理,之后几篇关于聚类的算法可能会涉及到基于高斯混合的期望最大化聚类、基于密度的聚类(DBSCAN)方法、以及层次聚类。

一.什么是聚类?

     聚类分析是将样品或变量按照他们在性质上的亲疏程度进行分类的数据分析方法,是典型的无监督分析方法。举一个比较形象的例子就是,比如说把人和其他动物放在一起比较的时候,可以根据一些属性特征,比如肢体特征、呼吸特征、是否会使用火等等将人和其他动物分离开,分离出来人、猴子、鱼类等等。

二.聚类应用

1.市场

可以通过对人群进行聚类,进行精准营销

2.生物

找到动物或者植物的相似特征,根据相似特征进行区分动植物

3.地震研究

对经常发生地震的区域进行聚类,区分危险区域与安全区域

4.社交网络

对经常互相联系的人们进行聚类,探索朋友圈

三.算法原理

1.确定一个k值

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

3.每一个数据点都分配到最近的质心

4.使用每个簇的中心值去更新每一个质心

5.重复直到不再产生新的分配

6.返回K质心

重复5-->3过程,直到不产生新的分配

2cb0524cffbd5c6afe7d5a16785c6466.png

如上图中通过不断迭代最终确定了质心,一般数据迭代五次就可以得到质心。

四.聚类效果函数

1.Silhouette函数

ff05821a9004b1d6659c0877df9af093.png

a(i):指的是一个点与其分在一个组的点的平均距离

b(i):指的是一个点与不在一个组内的点的最小平均距离

每个点都有 a(i)和b(i)两个值

当ai=0的时候si=1

当b

s(i)取值范围 (-1,1)

4a7657112919a5ffdd4467fca09c8dda.png

上图中右边部分是x轴就是si值,y轴便是点的位置

x轴的si轴越趋向于1,说明聚合程度越好

2.DB指标(Davies-Bouldin)

DB指标通过描述样本内的类内散度与各聚类中心的间距,定义为:

a36dce4966d43963d11947c9ff539bfb.png

k:聚类数目

Wi:类Ci中的所有样本到其聚类中心的平均距离

Wj:表示类Ci中所有样本到Cj中心的平均距离

Cij:表示类Ci和Cj中心之间的距离。

DB越小表示类与类之间的相似度越低,从而对应更加的聚类效果。

五.K-means优缺点

1.优点

(1)算法简单

(2)时间复杂度O(t*k*n)(t:迭代次数,k:初始设置的k值,n:数据点的数量)

2.缺点

(1)K值的选取比较麻烦

(2)初始点没有选好可能会收敛到局部最优点

(3)对噪点敏感(在非常远的一个点可能会对整体聚类产生影响,因为K-means算法使用的是均值)

(4)不适合做规则图形的聚类,比较适合做球状数据的聚类

六.Sklearn中K-means算法

1.Kmeans算法参数

bb2cbe10ed09be09d528dc564dac1722.png

介绍几个主要的参数:

n_clusters:聚类的k值,默认为8

max_iter:最大迭代次数,默认300次

init='k-means++':默认使用k-means算法

2.Kmeans主要方法

e05b39d775bc6386dba6a38cf3cd5460.png

(1)fit():计算聚类

(2)fit_predict():计算簇的质心,并给每个样本预测类别

(3)predict():给每个样本估计最近的簇

(4)score():计算聚类误差

参考

1.K-means参数解释:

https://blog.csdn.net/github_39261590/article/details/76910689

2.sklearn学习路径图:

https://www.jianshu.com/p/4e11af8d7c78

3.清华大学数据挖掘课:
https://www.bilibili.com/video/BV1Vt411v7YS?p=2

4.聚类效果函数参考:

《大数据分析原理与实践》王志宏

018a911c9c3c10ec5b723037abfb9228.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值