距离定义不同,聚类结果不同
聚类分析中,距离有两种定义方式,即:
- 依据远近:即距离的远近程度,远即距离远,近即距离近;
- 依据相似程度:即相似程度低为距离远,相似程度高为距离近
相同的聚类分析中,距离的定义方式不同,得到的聚类结果也会不同,实际的数据分析工作中,为了便于解释结果,我更喜欢使用相似程度去定义聚类分析中的距离。
聚类分析中的坑
如下为聚类分析过程中尤其要注意的点:
- X间不可相关
回归模型中自变量间不能具有相关性,同样,聚类分析中的自变量间也不可以相关,其实,聚类分析中对自变量相关性的把控比回归模型还要严格;
- 剔除量纲
聚类分析前需要剔除量纲的影响;
- 正态分布
由于聚类分析的结果不稳定,导致聚类分析非常脆弱,对于数据分布非常敏感,所以,聚类分析前需要精确的探索数据分布。快速聚类有一个基本假定,即参加聚类分析的变量必须服从正态分布,如果是非正态分布,则只能使用非参聚类去进行聚类的分析;
- 不要异常值
聚类分析为探索性学习,即模式发现,通常模式发现技术都会有一个共同的特点,即对数据异常值非常敏感,故以聚类分析为代表的模式发现技术最大的要求就是数据中不能够出现异常值。回归模型中我习惯使用盖帽法去处理异常值并对分布进行合适的变换,通常选择3倍标准差外,由于聚类分析对数据要求较高,所以聚类分析需要选择2倍标准差外进行处理;
- 记得抽样
由于聚类分析结果容易变动,样本量过大则聚类图形会呈现密集分布,无法辨清规律,所以最好不要让所有的观测都参与聚类分析,而应该在分析前进行数据抽样,选择具有充分代表性的观测去进行聚类,一般我会将样本量控制在1000以内去进行绘图。聚类后还需要与自己的常识进行对比,看聚类的结论与常识是否契合,如果没有问题后再去适当的扩大样本量;
- 变量勿多
距离将每行的观测看做一个向量,向量数目越多,向量的维度便会越高,计算也会越复杂,聚类分析要求参加聚类分析的变量最好不要太多,我的经验是不要超过10个。
客户画像中的RFM模型不仅仅有三个指标
营销时经常会使用些经典的模型对用户进行画像,例如可以选择用传统的RFM模型对客户进行细分,也可以在此基础上增加些客户相关的维度,例如航空公司在构建客户细分模型时,对传统的RFM指标进行了调整,确定了LRFMC这五个指标作为参数,其中L代表客户关系长度、C代表折扣系数等。
也就是说,如果不进行变量选择直接指定这几个变量进行客户画像的描述是可以的,如果变量很多,则只能是使用变量聚类的方法,变量聚类与聚类分析没有任何关系,变量聚类仅仅是为了降低变量间相关性的一种手段,仅此而已。
SAS中怎么实现聚类
SAS中通常使用cluster过程步去实现谱系聚类、系统聚类、分层聚类,其中的method参数代表类间距离算法,包括最短距离法、最常距离法、组间平均值法、组内平均连接法以及重心法,实际做的过程中,还是需要多次尝试。
聚类分析其实并不靠谱
聚类分析的思路是,聚类前需要决定要分的类数,找出类中心,将距离每个类中心近的点归到一起,然后再次选择类中心,重新进行归类,反复循环,直至类不再变动为止。我觉得这种方式有两个明显的漏洞:
- 聚类前就需要知道类别数;
- 聚类前就需要知道类中心
这两件事几乎不可能完成,所以泛泛的看这种聚类非常不靠谱,但是却没有什么替代聚类分析的好办法,能做的只是在技术环节下功夫,例如,慎重的选择类数、较好的找出初始类中心等等。
还需要注意的是,通常使用的K均值聚类的前提是数据为正态分布,如果数据不是正态分布,则需要使用SAS中的modeclus过程步,即非参聚类的方法去进行聚类分析,我觉得,如果数据非正态分布,聚类的效果就会差很多,所以,一般情况下, 我会使用严格的正态变换将数据变为正态分布后,再使用K-means的方法进行聚类分析。
类间差别越大越好
聚类分析后还需要进行类别轮廓处理,即对分完的每一类的特征进行描述。由于聚类分析的样本中没有Y,假如数据分为四类,如果为第一类则数据标记为1否则标记为0,按照这样的标记方式可以得到四个0-1形式的变量,用这四个变量去构建逻辑回归模型,以此去分析出哪一类别起的作用较大,逻辑回归模型在这里的作用即辅助聚类分析去进行轮廓描述。
分完类后,类间差别越大越好,检验类间差异大小的办法可以利用方差分析,即用类别变量作为分类变量、用任意的输入变量作为自变量
经典的聚类分析标签
聚类分析有很多有意思的经典标签,例如:
- 依据消费行为可以将人分为喜欢喜欢捡便宜的人、偏执性的只认准正品的人、冲动消费狂、、疲倦的父母、丁克族
- 依据店铺服务形式可将店铺分为低成本杂货店、精品店与全服务型超市等三类
- 依据穿衣风格将人群分为皮衣皮帽、时尚派与实用派三类
- 保险公司依据客户产品购买力将客户分为青年精英、初为人母、财务自由、中年女士与居家老人等几类