聚类分析算法及SAS实现

时间:2024-04-15 16:02:40

    聚类分析是用户细分里面最为重要的工具,而用户细分则是整个精准营销里面的基础。

    聚类分析方法分为:

  • 层次法:可分为凝聚式和分列式,适用于观测数比较少的情形

1、凝聚式:将每个观测都归为一类,然后每次都将最相似的两个类合并成一个新的类,直至所有的观测成为一类或者达到所预订的分类条件为止。SAS中的层次法都是凝聚式。

    分列式:将所有观测归为一类,接下来美的都把现有的类别按照相似程度一分为二,直至每一观测都各自成为一类或者达到预订的分类条件为止。

2、使用过程CLUSTER实现层次法

proc cluster data=  outtree=用于生成树形图的数据集 method=  <选项>;

  by variables;
  copy variables;
  id variables;
  rmsstd variables;/*指定了方根标准方差变量*/
  var variables;
run;
【注:"method= "指定做层次分析的具体方法,可以指定11种系统聚类方法:
  average:类平均法

  centroid:重心法

  complete:最长距离法

  density:密度估算法
  eml:最大似然谱系聚类

  flexible:可变类平均法

  mcquitty:可变法

  mcquitty相似分析法
  median:中间距离法

  single:最短距离法

  twostage:两阶段密度估算法

  ward:离差平方和法

<选项>:CCC用于输出(cubic clustering criterion)值,称三次聚类准则;

             pseudo用于输出伪F统计量与伪T统计量;

             rsquare用于输出统计量R方(越大表示类之间分得越开,聚类效果越好)与半偏R方(上一步与该步的差异,越小越好);】

对树形图进行控制:

proc tree data= haxis=用于自定义横坐标轴(例如通过axis order=(0 to 1 by 0.1)事先定义,然后直接引用axis)  horizontal 用于指定生成水平数;

name 变量;

height 变量;

copy 变量;

id 变量;

run;

  • 划分法:在开始阶段指定某几个类中心,接下来通过计算将每个观测暂时归到距离其最近的类中心所在的类,并且不断调整类中心直至收敛。

1、使用fastclus实现K均值聚类法,可用来处理规模较大的数据。

proc fastclus data=数据集 maxc=聚类分析生成的分类数目的最大值,默认100 maxiter=为重新计算种子类的最大迭代次数 out=指定输出数据集;

var 变量;

run;

 

 

(未完待续)