分类和聚类
聚类:把相似的东西分成一组。
常用算法
K-means算法
首先需要制定K值,即簇的个数,也即分成的堆数。
质心,也即数据的均值,指向量各维求平均即可。
距离的度量,常用欧几里得距离和余弦相似度计算。
优化目标:
优点
简单、快速、适合常规数据
缺点
K值比较难指定,复杂度和样本呈线性关系,样本越多,计算时约复杂;很难发现任意形状的簇。
DBSCAN算法
核心对象:若某个点的密度达到算法设定的阀值则称为核心点,即r领域内点的数量不小于minPts。
-领域的距离阀值:设定的半径r
直接密度可达:若某点p在点q的r领域内,且q是核心点则p-q直接密度可达。
密度可达:若有一个点的序列q0,q1...qk,对任意qi-qi-1是直接密度可达的,则称从q0到qik密度可达,这实际上sh是密度可达的传播。
密度相连:若从核心点p出发,点p和点k都是密度可达的,则称点q和点k是密度相连的。
边界点:属于某一个类的非核心点,不能发展下线的点。
噪声点:不属于任何一个类簇的点,从任何一个核心点出发都是密度不可达的。
工作流程
参数D:输入数据集
参数:指定半径
MinPts:密度阀值,一个簇里面最少样本个数。
参数的选择:
半径,可以根据K距离来设定,即寻找突变点。
K距离:给定数据集P={p(i);i=0,1,...n},计算点P(i)到集合D的子集S中所有点之间的距离,距离按照从小到大的顺序排列,d(k)被称为k-距离。
MinPts:k-距离中k的值,一般取的小一些,要多次尝试。
优势:
1.不需要指定簇个数
2.可以发现任意形状的簇。
3.擅长找到离群点(解决检测任务)
4.只需设置半径和MinPts.
缺点:
1.高维数据计算复杂,不过可以做降维去解决。
2.参数难以选择,参数对结果的影响很大。
3.Sklearn中效率很慢,不过可以先做数据处理,如数据消减策略。
聚类算法的比较
https://blog.csdn.net/shuke1991/article/details/52166345
轮廓系数
评估聚类模型的标准。