登录
首页精彩阅读SAS 协同过滤算法,K个邻居的实现​_数据分析师
SAS 协同过滤算法,K个邻居的实现​_数据分析师
2014-11-19
收藏

SAS 协同过滤算法,K个邻居的实现_数据分析师


欧几里得距离计算:
%macro quan;
data quan;
array a{4} a1-a4;
do k=1 to 10;
do j=1 to 4;
a{j}=ranuni(0);
end; output;
end; drop j ;
run;
%do i= 1 %to 10;
data a&i b&i;
set quan;
if _n_=&i then output a&i;
else output b&i;
run;
data quan&i;
array a{4} a1-a4;
array b{4}b1-b4;
retain b1-b4;
if _n_=1 then do ;
set a&i;
do i=1 to 4;
b{i}=a{i};
end;
end;
else do ;
set b&i;
do i= 1 to 4;
a{i}=a{i}-b{i} ;
end; output;
end; drop b1-b4 i;
run;
data x&i;
array a{4} a1-a4;
set quan&i;
do i=1 to 4;
x=sum(a(i)**2);
end;
output;drop i;
run;
proc rank data=x&i out=rank&i ;
var x ;
ranks y;
run; 
data output&i;
set rank&i;
where y le 2;
run;
proc print data=output&i;

本文来自:CDA数据分析师

title "与&i.相似的两个邻居";
var k;
run;
%end;
%mend;
%quan;
该算法在处理大数据上,如何把邻居放到一个数据集,或者拿某些特征标识出来,需要研究!

数据分析咨询请扫描二维码

客服在线
立即咨询