SAS 关联规则

/* 关联规则算法的实现  */
/* 读入关联数据,列代表项目集中的一个项目,行代表一个记录集,每行在某列上的值为0表示该记录集不含该项目,为1代表包含该项目  */
data test;
  input id 1 class1 3 class2 5 class3 7 class4 9 class5 11 class6 13 class7 15 ;
cards;
1 0 0 1 1 0 1 0
2 1 0 0 1 0 1 1
3 0 1 1 0 1 1 0
4 1 1 0 1 0 1 1
5 0 1 1 1 0 1 0
6 0 0 0 1 0 1 1
;
run;

data items2;
set test;
length tid 8;
length item $8;
tid = _n_;
item = class1;
output;
item = class2;
output;
item = class3;
output;
item = class4;
output;
item = class5;
output;
item = class6;
output;
item = class7;
output;
keep tid item;
run;

proc sql;
alter table items2
modify item char(8);
quit;

/*关联分析*/

proc dmdb data=items2 dmdbcat=dbcat;
class tid item;
run; quit;

proc assoc data=items2 dmdbcat=dbcat pctsup=0.5 out=frequentItems;
id tid;
target item;
run;

proc rulegen in=frequentItems dmdbcat=dbcat out=rules minconf=80;
run ;

proc sort data=rules;
by descending conf;
run ;

/*只保留结果中包含生存变量的关联规则*/

data surviverules;
set rules(where=(set_size>1 and (_rhand=‘Yes’ or _rhand=‘No’)));
run;

proc print data=surviverules;
var conf support lift rule ;
run ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值