文|十方
比较分类算法的话,大概考虑这几个维度:时间空间复杂度,鲁棒性,参数敏感性,处理不规则形状,适合的类数量,类间差异(范围大小,样本个数,形状差异)
可以参照一下sklearn网站给出的列表:2.3. Clustering
除了这些聚类方法以外,统计老师讲过一些传统的聚类方法,归属于系统聚类的范畴,先定义观测间的距离和类之间的距离计算方法,然后按照距离把最接近的两个观测(类)合并,直到合并成一个大类为止。
最短距离法:
类间距为两类中最近观测的距离。
不限制类形状,对拉长的分布效果好,会删除边缘的观测点
最长距离法:
类间距为两类中最远观测的距离。
倾向于产生直径相等的类,易受异常值影响。
中间距离法:
类间距为最长距、最短距、类内距离的加权。
重心法:
类间距为两类重心之间的距离
对奇异值稳健
类平均法:
类间距为两类观测之间距离的平均值。
倾向于先合并方差小的类,偏向于产生方差相同的类。
离差平方和法:
将合并后类内方差最小的两类合并
倾向于产生数量相等的两类,对异常值敏感
密度估计:
较远的距离设为无穷。较近的两个样本,距离与局部密度成反比。
适用于不规则形状类,不适用样本数太少。
两阶段密度估计:
用密度估计计算距离,再用最短距离法聚类。
普适性较强
除了以上这些常见方法,值得一提的是去年发在science上的算法 fast search and find of density peaks. 这个方法克服了DBSCAN中不同类的密度差别大,邻域范围难以设定的问题,非常鲁棒,看起来棒棒的。
ps:如果希望聚的效果好,距离度量方法有时候比聚类方法更重要。