| 查看: 2499 | 回复: 1 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
[求助]
数据离散化的代码修改
|
||
|
%基于熵的属性离散化方法,参见《一种基于熵的连续属性离散化方法》 function [result,dds]=shang(data) [m,n]=size(data); result=zeros(10,5); for i=1:n %%%%%%%%%%%%%%%%%计算划分点 setpoints=[]; seqs=[]; locs=[]; %%%%%%%%%%%%%%%当出现有相通属性值的样本点时,去掉其余的只保留一个,为后面 %为后面计算断点做准备 [seqs,locs]=sort(data(:,i)); se=seqs; for bbs=1:m-1 if se(bbs)==se(bbs+1) qs=bbs+1; while se(bbs)==se(qs) se(qs)=inf; end end end se(find(se==inf))=[]; newlen=length(se); %%%%%%%%%%%%%%%%% for j=1:newlen-1 %计算断点的值 setpoints(j)=(se(j)+se(j+1))/2; end %%%%%%%%%%%%%%%%% nn=length(setpoints);%计算现有内部断点数 for t1=1:nn+1 %计算各个断点处的卡方统计值 %%%%%%%%%%计算卡方分布值 if t1==1 s1=length(find(-inf s1=length(find(setpoints(t1-1)<=seqs&seqs s1=length(find(setpoints(t1-1)<=seqs&seqs num(t1)=s1; P(t1)=s1/m; end%接 for t1=1:nn+1 Hmin(1)=-sum(P.*log2(P));%初始熵值 k0=length(setpoints); H0=Hmin(1); Ck=zeros(1,2);%初始化Ck,另Ck(2)=0是为了它能够进入循环while Ck(2)-Ck(1)>=0 %Ck(2)是合并区间后的值,在while循环中会设置 %%%%%%%%%%%%%%%%%%循环 symbol=0; while Ck(2)-Ck(1)>=0 Ck(1)=Ck(2); if symbol==1 setpt(ad)=[]; setpoints=[]; setpoints=setpt; end Q=[]; H=[]; num=[]; setpt=[]; nn=length(setpoints);%计算现有内部断点数 setpt=setpoints; for c1=1:nn%计算去掉每个断点所得的熵值,找出其中熵差最小的一个作为合并对象 setpoints=[]; setpoints=setpt; setpoints(c1)=[]; tt=length(setpoints); for t2=1:tt+1 %计算各个断点处的卡方统计值 %%%%%%%%%%计算卡方分布值 if t2==1 s1=length(find(-inf s1=length(find(setpoints(t2-1)<=seqs&seqs s1=length(find(setpoints(t2-1)<=seqs&seqs num(t2)=s1; Q(t1)=s1/m; end%接 for t1=1:nn+1 H(c1)=-sum(Q.*log2(Q));%后续计算所得熵值 end symbol=1; [Hmin(2),ad]=min(H); % Ck(2)=(nn)*Hmin(2)-Hmin(1)*(nn-1); Ck(2)=(k0)*Hmin(2)-H0*(nn-1); Hmin(1)=Hmin(2); end nt=length(setpt); result(1:nt,i)=setpt; end pointsnum=[]; %将各个区间的值离散化 dds=zeros(m,n); for i=1:n locd=[]; locd=result(:,i); locd(find(locd==0))=[]; pointsnum(i)=length(locd)+1;%区间个数 if length(locd)~=0 for j=1:pointsnum(i) if j==1 dds(find(-inf elseif j==pointsnum(i) dds(find(locd(j-1)<=data(:,i)&data(:,i) dds(find(locd(j-1)<=data(:,i)&data(:,i)<=locd(j)),i)=j; end end end end |
» 本帖附件资源列表
-
欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com - 附件 1 : shang.m
2012-04-18 14:49:13, 3.14 K
» 猜你喜欢
垃圾破二本职称评审标准
已经有6人回复
三无产品还有机会吗
已经有5人回复
投稿返修后收到这样的回复,还有希望吗
已经有7人回复
压汞仪和BET测气凝胶孔隙率
已经有4人回复
博士申请都是内定的吗?
已经有14人回复
谈谈两天一夜的“延安行”
已经有13人回复
氨基封端PDMS和HDI反应快速固化
已经有11人回复
之前让一硕士生水了7个发明专利,现在这7个获批发明专利的维护费可从哪儿支出哈?
已经有11人回复
论文投稿求助
已经有4人回复
Applied Surface Science 这个期刊。有哪位虫友投过的能把word模板发给我参考一下嘛
已经有3人回复
» 本主题相关价值贴推荐,对您同样有帮助:
含氯酸钠溶液加入浓硫酸为什么有氯气产生?怎么避免?
已经有5人回复
关于动力学极限电流密度
已经有3人回复
课题组聘请懂得量化计算的人员,做兼职也行
已经有7人回复
求助一段代码解读,有奖励
已经有3人回复
选错申请代码了,影响大吗
已经有29人回复
有关国基申请代码的问题
已经有7人回复
龙贝格化工热力学计算的代码
已经有12人回复
(化学)实验室合成的产物含水量测定有哪些方法?
已经有3人回复
【求助】用Gaussview画分子轨道图和数据分析的结果不一致的问题
已经有8人回复
【求助】如何用XRD数据计算晶粒大小?谢谢,希望能够写出详细过程?
已经有15人回复
【请教】怎么样把XRD实验数据导入Material Stutio,用Reflex进行指标化?
已经有6人回复
【求助】关于ZSM-5XRD特征峰降低
已经有3人回复
随机非线性微分方程如何离散化??
已经有8人回复













回复此楼