聚类分析——客户分群分析
一、聚类
聚类分析主要是针对无监督问题,即没有标签值。回顾之前python分析淘宝用户行为(三),我们再运用RFM模型时,人为制作评分系统,并打上标签值,今天主要是直接将其当作无监督问题来处理
简单来说,就是将相似的东西分到一组,比如说我们进行客户分群时,会根据其价值进行分群,从而制定精准策略。但聚类也存在一些问题,比如说如何评估,如何调参等等。
二、K-Means算法
理论解释并不是很难理解,我简单说一下自己的理解,现在有很多组数据,没有标签值,只能根据他们之间的相似度进行分组。
**过程:**指定需要分多少种客户类型,即K值,然后选取质心(利用向量各维取平均值),选完后将周围的点计算欧几里得距离,最后根据距离进行相似分类。
**优势:**简单,快速,适合常规数据集
**劣势:**K值难确定;复杂度与样本呈线性关系;很难发现任意形状的簇
三、DBSCAN算法
1、基本概念
**核心对象:**若某个点的密度达到算法设定的阈值则其为核心点(即r领域内的数量不小于minPts)
**\epsilon-领域的距离阈值:**设定的半径r
**直接密度可达:**若某点p在点q的领域内,且q是核心点则p-q直接密度可达
**密度可达:**若有一个点的序列q0,q1…qk,对于任意其qi-qi-1是直接密度可达的,则称为从q0到qk密度可达,这实际上是直接密度可达的“传播”
**过程:**数据集-指定半径(r)-密度阈值(Minpts)-进行聚类
参数选择:
**半径:**可以根据K距离来设定
**K距离:**给定数据集P ={p(i);i=0,1,…n},计算点p(i)到集合D的子集S中所有点的距离,距离按照从小到大的顺序排序,d(K)就被称为k-距离
**MinPts:**k-距离中k的值,一般取的小一些,多次尝试