文中的代码为matlab代码。关于信息熵的概念由于本文非科普向就不介绍了。基于python的代码可以参见参考资料1.
文中的第三部分为信息熵事件数为3时的三维空间可视化表示。
1 信息熵的公式表示
p:该类别占比的概率,也可以理解为纯度,纯度越高,占比越大
信息熵越大,能给我们利用的信息就越少。
2 n=2时的信息熵图像
单看组成函数x*log(x),其图像和代码如下,不过不存在只有n=1的情况,因为此时p=1,信息熵始终为0,表示确定事件:
x=[0:0.002:1];
y=-x.*log(x);
figure;
plot(x,y)
title('y=-x*log(x)')
函数的图像
而当只有两个事件或两个类时,信息熵的表示如下:
x=[0:0.002:1];
y=-x.*log(x)+-1*(1-x).*log(1-x);
figure;
plot(x,y)
title('y=-(x.*log(x)+(1-x).*log(1-x))');
y轴表示信息熵
3 n=3时的信息熵图像
用matlab画三维的信息熵图像时,遇到了值域的问题:
x+y+z=1
x+y<=1
0<=x,y,z<=1
eoi=-(x.*log(x)+y.*log(y)+(1-x-y).*log(1-x-y))
代码画图如下:
X=[0:0.002:1];
Y=[0:0.002:1];
[x,y]=meshgrid(X,Y);
z=1-x-y;
z(z<=0)=0;
eoi=-(x.*log(x)+y.*log(y)+z.*log(z));
eoi((x+y)>1)=NaN;
figure;
mesh(X,Y,eoi);
z轴表示信息熵
热力表示如下:
z轴表示信息熵通过二维和三维的信息熵图像可以发现,当各类出现的概率相同时,信息熵的值最大,相应的提供的信息最少。
4 决策树和信息熵
基于信息熵这一概念,可以实现决策树的算法,决策树根据使用信息熵方式的不同,可以分为ID.3、C4.5和CART
ID.3:信息增益
C4.5:信息增益比
CART:基尼系数
参考资料:
【1】https://blog.csdn.net/qq_26972735/article/details/84618931 Matplotlib画图----信息熵函数图像(python环境)
【2】https://www.jianshu.com/p/a546022061e0 决策树节点划分时的特征选择依据
网友评论