决策树之信息增益计算模拟

决策树算法有一个关键步骤就是最优特征的选择,利用信息增益算法选择该特征,例子来自于《统计学习方法》

利用MATLAB2017A版本,编写MATLAB程序计算之,将上述的数据保存到data5.xlsx中

clear;clc;close all
% 计算信息增益,决策树算法的基础
data = readtable('data5.xlsx');
data = string(table2cell(data));
%
H = @(p) sum(-p.*log2(p));
% 计算H(D)
HDD = data(:, end);
uHDD = unique(HDD);
n = length(HDD);
HD = getHDi(HDD, uHDD);
% 计算g(D)
gD = HD - cellfun(@(z)...
     sum(z == unique(z)') *...
     arrayfun(@(x)getHDi(HDD(z == x), uHDD),...
     unique(z)) / n, num2cell(data(:, 2: end-1),1));
[~, idx] = max(gD);
fprintf('选择第%d个特征最为最优特征\n', idx);

function y = getHDi(x, uHDD)
H = @(p) nansum(-p*log2(p)');
y = H(sum(x == uHDD') / length(x));
end

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值