《统计学习方法》matlab计算决策树信息增益

function [ empEnt ] = expEnt( A )
%计算列向量的经验熵
empEnt=0;
list=unique(A);
l=length(list);
for i=1:l
    Length=length(find(A==list(i)));
    p=Length/length(A);
    empEnt=empEnt-p*log2(p);
end


end

function [ ecEnt ] = Ecent( A,B,emEnt)
%计算经验条件熵
ecEnt=emEnt;
Lengh_A=length(A);
list=unique(A);
Length=length(list);
for i=1:Length
    loc=find(A==list(i));
    L=length(loc);
    Save=zeros(L,1);
    for j=1:L
        Save(j)=B(loc(j));
    end
   ecEnt=ecEnt-expEnt(Save)*L/Lengh_A;
end
end

function [Ecents] = Ecents( A )
%显示所有经验条件熵
size_A=size(A);
list_A=A(:,size_A(2));
empEnt=expEnt(list_A);
Ecents=zeros((size_A(2)-1),1);
for i=1:size_A(2)-1
    data=A(:,i);
    Ecents(i)=Ecent(data,list_A,empEnt);
end
    


end

三段代码用来计算P75的信息增益,第一段是经验熵,第二段是单独列的经验条件熵,第三段是显示所有经验条件熵。需要预处理数据,做成矩阵形式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值