加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

SAS EM 聚类分析

(2010-09-02 14:05:57)
标签:

教育

分类: 数据挖掘

Proc Cluster

聚类分析是用来寻找观测值中潜在的、未知的知识。它可以通过各种各样的方法计算得到,最常用的就是运用距离度量方式计算数据点之间的关系,从而创建聚簇。

SAS中执行聚类分析

PROC CLUSTER <选项>;

VAR 变量1 变量2 变量3 ... 变量 n;

选项主要是控制过程的打印、计算和输出

选项如下:

NOPRINT禁止打印输出

NOEIGEN禁止打印特征值

SIMPLE 产生每个变量的简单统计描述

METHOD=控制使用的聚类方法

STANDRAD 使用相关矩阵计算

OUTTREE  创建用于聚类图的输出数据集

VAR语句用来列举变量列表

例如:PROC CLUSTER METHOD = AVERAGE OUTTREE = TREE;

VAR PEAK_VISC TROUGH_VISC FINAL_VISC BREAKDOWN

TOTAL_SETBACK TIMEPEAK_VISC;

 

 

 

SAS中,可以通过Proc tree来创建树图,proc cluster的输出数据集作为proc tree的输入数据集。proc tree data=tree;

 

axis1 label=none;

proc tree data=tree1

    dis horizontal

    lines=(color=red dots)

    vaxis=axis1;

SAS代码

%makegplot(type=pdf,pltfile='irisclus.pdf');

 

DATA IRISCLUS;

TITLE 'CLUSTER ANALYSIS OF 15 CASES FROM IRIS DATA SET';

TITLE2 'FIVE CASES FROM EACH IRIS TYPE';

     INFILE 'irisclus.dat';

INPUT IRISGRP IRISID SEPALLEN SEPALWID PETALLEN PETALWID;

PROC CLUSTER OUTTREE=SINGLE SIMPLE STANDARD

             METHOD=SINGLE PSEUDO;

     VAR SEPALLEN SEPALWID PETALLEN PETALWID;

     ID IRISID;

PROC TREE DATA=SINGLE DISSIMILAR;

TITLE3 'SINGLE LINKAGE METHOD';

     ID IRISID;

 

%MACRO MAKEGPLOT(TYPE=PS,PLTFILE='PLOT.PS');

%PLOT:

   FILENAME grafout &PLTFILE;

   data _NULL_;

      file grafout;

%* use device=ps for postscript file output;

%* use device=pdf for pdf file output;

%* use device=gif for gif file output;

%* use device=psepsf for encapsulated postscript file output;

%* use device=jpeg for jpeg file output;

%* use device=tiffp for tiff file output;

%* use device=bmp for bmp file output;

%* use device=WMF for Windows Metafile format file output;

 

   goptions device=&type gsflen=80 gsfname=grafout gsfmode=append;

   %goto exit;

 

Filename grafout clear;

 

%exit:

   %blankln(0)

%endit:

   %blankln(0)

 

%MEND MAKEGPLOT;

 

%MACRO BLANKLN(LINES);

   %DO I=1 %TO &LINES;

      %PUT %STR( );

      %END;

%MEND BLANKLN;

 

SAS Kmeans聚类

data irisclus;

input IRISGRP IRISID SEPALLEN SEPALWID PETALLEN PETALWID;

cards;

1 101 5.1 3.5 1.4 0.2

1 102 4.9 3.0 1.4 0.2

1 103 4.7 3.2 1.3 0.2

1 104 4.6 3.1 1.5 0.2

1 105 5.0 3.6 1.4 0.2

2 201 7.0 3.2 4.7 1.4

2 202 6.4 3.2 4.5 1.5

2 203 6.9 3.1 4.9 1.5

2 204 5.5 2.3 4.0 1.3

2 205 6.5 2.8 4.6 1.5

3 301 6.3 3.3 6.0 2.5

3 302 5.8 2.7 5.1 1.9

3 303 7.1 3.0 5.9 2.1

3 304 6.3 2.9 5.6 1.8

3 305 6.5 3.0 5.8 2.2

;

* 数据标准化处理;

proc standard data=irisclus out=Stand mean=0 std=1;

      var SEPALLEN SEPALWID PETALLEN PETALWID;

proc print data=stand;

* 执行Kmeans程序;

proc fastclus data=Stand out=Clust maxclusters=3 maxiter=100 drift;

     var SEPALLEN SEPALWID PETALLEN PETALWID;

* 查看聚类结果;

proc print data=clust;

run;

* 运用 PROC DISCRIM寻找典型变量,并且绘制出来;

proc discrim data=clust out=discout canonical;

class cluster;

var SEPALLEN SEPALWID PETALLEN PETALWID;

proc plot data=discout;

     plot can2*can1=cluster;

run;

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有