聚类特征变量选取、聚类算法与效果评价简述

对data的各个feature进行预处理

1. feature的选择:用相关性、基尼系数、信息熵、统计检验或是随机森林选取最为重要的特征变量

2. 如果需要,对一些特征变量进行scaling

3. 对数据进行变换:离散傅里叶变换或离散小波变换

4. 可以对数据进行降维处理,映射到低维度空间进行展示,观察数据形状,帮助选择聚类算法

降维的一些选择:

线性方法,PCA

非线性特征十分明显的数据集:流行学习(ISOMAP, LLE, MVU, Kernel PCA)

谱聚类:spectral clustering



聚类中度量相似性的方法:

1. 距离:最为常用的度量点之间相似性的方法。有很多距离的计算方法距离的各个公式其实是LP Norm(LP Space:Lebesgue可积空间)算法的一种应用。

公式:  \ \|x\|_p=\left(|x_1|^p+|x_2|^p+\dotsb+|x_n|^p\right)^{\frac{1}{p}}

当p=1时,该距离为Manhattan距离;p=2时,为欧式距离,等等

这里需要研究各个距离对点逼近簇中心方式的不同,并知道在何种情形下应该使用何种距离更为合适。

2. 相似系数:主要为夹角余弦与相关系数:如皮尔逊相似系数等等。

3. 核函数:把数据从低维度的空间投射至高维度空间中去。

4. DTW距离:主要运用于计算两段时间序列距离的一种方法,网上有京东运用此距离算法研究用户生命周期,并以此进行聚类的实例。



聚类算法:

1. 基于分层的聚类:

Birch:适用于大数量级,并且数据为numerical;

Rock:适用于数据为categorical feature的情况;

Chameleon:聚类效果非常高,可以在类别极其复杂的情况下仍然保持很高的准确率,但运算效率较低。


2. partition-based clustering algorithm

最基础的无疑是k-means以及其衍生出去的k-means家族算法

以下是k-means的存在的一些问题,及对应解决这些问题的衍生算法

k-means对初始值设定异常敏感,不同的初始中心也即不同的seed的运算结果会有一定的差别;> k-means++, intelligent k-means, genetic-kmeans

k-menas对噪声及离群值非常的敏感; > k-medoids, k-medians

k-menas只适用于numerical数据,不适应categorical数据; > k-modes

k-means对于非凸数据对聚类效果非常差; kernel k-means

k-menas在数据量相当大时,就越可能陷入local optimal


3. density-based clustering algoritm

最基础的是dbscan:这种基于密度的聚类方法的主要逻辑是画圈圈,所以dbscan最重要的两个参数也就是圈的最大半径与圈中最多有多少个点

dbscan对于参数的设置极为敏感,所以有了对应的OPTICS:优先对高密度区域进行搜索,然后根据高密度区域的特点进行参数设置。


4. model-based clustering algorithm

主要基于的是概率模型与神经网络模型。

概率模型:主要思想为属于同一类的数据应该属于同一种概率分布所产生。执行效率不是很高。

最为常用的为高级混合模型 GMM (EM)

神经网络模型:SOM



聚类效果的评价

1. Davies-Bouldin index 对应R中的包:clv,clusterCrit 也是基于点至中心点的距离衍生出去的一种评价方法

2. 在numerical数据集下,可以用轮廓系数来求得

3. 信息熵、F值等等





你可能感兴趣的:(Clustering)