聚类算法原理简介

1,聚类概念
聚类涉及到数据点的分组。给定一组数据点,我们可以使用聚类算法将每个数据点划分为一个特定的组。理论上,同一组中的数据点应该具有相似的属性和/或特征,而不同组中的数据点应该具有高度不同的属性和/或特征。聚类是一种无监督学习的方法(没有标签),是许多领域中常用的统计数据分析技术有时候作为监督学习中稀疏特征的预处理,有时候可以作为异常值检测。应用场景:新闻聚类、用户购买模式(交叉销售)、图像与基因技术等。聚类的难点有评估和调参等(无标签)。
2,K-means算法
要得到簇的个数,需要指定K值(簇的个数);
质心:均值,即向量各维取平均即可;
距离的度量:常用欧几里得距离和余弦相似度(对数据先标准化);
优化目标:
聚类算法原理简介_第1张图片
工作流程:
聚类算法原理简介_第2张图片
(1)指定K的值,随机初始化两个质心(b);
(2)遍历所有样本点(a),分别计算样本点到两个质心的距离并进行聚类(c);
(3)根据聚类的结果更新质心的位置(d)
(4)重新遍历样本点计算到质心的距离并进行聚类(e)
(5)不断更新并聚类直至质心的位置不在发生明显变化为止(f)
优势:简单,快速,适合常规数据集;
劣势:K值难确定,复杂度与样本呈线性关系,很难发现任意形状的簇

聚类算法原理简介_第3张图片

3,DBSCAN算法
基于密度的带有噪声点的聚类算法,全称为Density-Based Spatial Clustering of Applications with Noise。

核心对象:若某个点的密度达到算法设定的阈值则其为核心点。(即 r 邻域内点的数量不小于 minPts);

ϵ-邻域的距离阈值:需要设定的半径r;

直接密度可达:若某点p在点q的 r 邻域内,且q是核心点则p-q直接密度可达;

密度可达:若有一个点的序列q0、q1、…qk,对任意qi-qi-1是直接密度可达的,则称从q0到qk密度可达,这实际上是直接密度可达的“传播”;

密度相连:若从某核心点p出发,点q和点k都是密度可达的,则称点q和点k是密度相连的;

边界点:属于某一个类的非核心点,不能发展下线了;

噪声点:不属于任何一个类簇的点,从任何一个核心点出发都是密度不可达的。
聚类算法原理简介_第4张图片
A:核心对象;B,C:边界点(无下线);N:离群点(常用于异常检测)。

工作流程:

输入的参数:
参数D:输入数据集;参数ϵ:指定半径;MinPts:密度阈值

聚类算法原理简介_第5张图片
参数选择:
半径ϵ,可以根据K距离来设定:找突变点。
K距离:给定数据集P={p(i); i=0,1,…n},计算点P(i)到集合中其他点之间的距离,距离按照从小到大的顺序排序,d(k)就被称为k-距离。
MinPts: k-距离中k的值,一般取的小一些,多次尝试。
优点:不需要指定簇个数;可以发现任意形状的簇;擅长找到离群点(检测任务);两个参数就够了
聚类算法原理简介_第6张图片
劣势:高维数据有些困难(可以做降维);参数难以选择(参数对结果的影响非常大);Sklearn中效率很慢(数据削减策略)

你可能感兴趣的:(机器学习)