熵的计算


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));
		
				

	}

}

文/程忠 浏览次数:0次   2020-11-01 22:42:04

相关阅读


评论: