1.什么是熵,这里只谈计算机领域的信息熵
2.举例,以做选择题为例
3.代码,用Java代码来计算熵,还是计算上图的例子
package net.highersoft.ml;
public class Shang {
public static void main(String[] args) {
// 一道选择题,4个选项,选项都可能是答案。
//熵=A+B+C+D=A*4
double total=(1.0/4)*(Math.log(4)/Math.log(2))*4 ;
System.out.println(total);
//C选项有50%可能性是答案
//熵=C+(A+B+D)=C+3*A
double ratA=1.0/3*(1.0/2);
double s2=total-1.0/2*(Math.log(2)/Math.log(2))+ratA*(Math.log(1/ratA)/Math.log(2))*3;
System.out.println(s2);
//D选项是错的
//熵=A*3
double s3=1.0/3*(Math.log(3)/Math.log(2))*3;
System.out.println(s3+"即提供的信息为:"+(total-s3));
//D选项是错的,且A选项是错的
//熵=B*2
double s4=1.0/2*(Math.log(2)/Math.log(2))*2;
System.out.println(s4+"即提供的信息为:"+(s3-s4));
//D选项是错的,且A选项是错的,且B选项是错的
//熵=C
double s5=1.0/1*(Math.log(1)/Math.log(2));
System.out.println(s5+"即提供的信息为:"+(s4-s5));
}
}
评论:
提交