粗糙集近似集 matlab,【求助】关于粗糙集约简程序问题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

function select_feature=forwardsearch1(data,a,delta,k)

%%forward search随机前k个重要属性搜索算法

%%%%%%%%%%%%求所有条件属性的依赖度

%%a_下近似阈值

%%b_上近似阈值,对约简结果影响不大

[N,M]=size(data);

C=1:(M-1);

R=C;

b=0.1;

[P1,all_gama]=pos(data,R,a,b,delta);

%%%%%%%%%%%%

%%%%%%%%%%%%初始化

sig=[];

red=[];

C_red=C;

red_gama=0;

%%%%%%%%%%%%%%

while (red_gama

for idx=1:length(C_red);

ai=C_red(idx);

redai=[red ai];

[P2,redai_gama]=pos(data,redai,a,b,delta);

red_ai_sig=redai_gama-red_gama; %%red_ai_sig ai相对red的属性重要度

sig(idx)=red_ai_sig;

end;

%%%%%%%%%%%%%%从前k个重要度高的属性中随机选择一个

[sig1,idx1]=sort(sig,2,'descend');%%对属性的重要进行降序排序结果存在sig1;idx为降序后原来位置相应的index

col1=randi(k);%%生成不大于k的随机整数

x1=sig1(col1); % x1为选中的最大的属性相对重要度值

n1=idx1(col1); % n1为选中的属性对应的下标

%%%%%%%%%%%%%%%

% 任何单个属性的重要度均为0,则 显示 “单个属性的重要度均为0”

if length(sig)==(M-1)&&x1==0

fprintf('单个属性的重要度均为0\n');

end;

red=[red C_red(n1)];%%更新red,加入选中的相对重要度较大的属性

C_red(n1)=[]; %%更新C_red,去除选中的相对重要度较大的属性

[P3,red_gama]=pos(data,red,a,b,delta);

sig=[];

end

select_feature=red;

%select_feature1=num2str(select_feature);

%fprintf('前向搜素reduct = %s\n', select_feature1);

程序如上,要怎么设置参数呢,设置多少呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值