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

xiaoxiao2021-02-28  85

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

利用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

转载请注明原文地址: https://www.6miu.com/read-82469.html

最新回复(0)