机器学习知识点(一)文本字符信息熵Java实现

原创 2017年01月03日 14:29:34
用熵来评价整个随机变量x平均的信息量,而平均最好的量度就是随机变量的期望,即熵的定义如下:

H[x]=-\sum_xp(x)log_2p(x)

计算字符的信息熵,参考代码如下:

package sk.ann;

import java.util.Scanner;

public class InfoEntropy {
	
	public static double Entropy(String str) {
		double H = .0;
		int sum = 0;
		int[] letter = new int[26];//26个字符
		str = str.toUpperCase(); // 将小写字母转换成大写
		for (int i = 0; i < str.length(); i++) { // 统计字母个数
			char c = str.charAt(i);
			if (c >= 'A' && c <= 'Z') {
				letter[c - 'A']++;
				sum++;
			}
		}
		//计算信息熵,将字母出现的频率作为离散概率值
		for (int i = 0; i < 26; i++) {
			double p = 1.0 * letter[i] / sum;//单个字母的频率
			if (p > 0)
				H += -(p * Math.log(p) / Math.log(2));// H = -∑Pi*log2(Pi) 
		}
		return H;
	}
		
		public static void main(String[] args) {
			System.out.println("请输入字符串:");
			Scanner scan = new Scanner(System.in);
			String str = scan.next();
			double H = Entropy(str);
			System.out.printf("%4.2f\n", H);
		}
}

执行结果:

请输入字符串:
are you ok!yes i am ok!
1.58



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

机器学习算法——信息熵

信息熵(Entropy) 信息是个很抽象的概念。我们常常说信息很多,或者信息较少,但却很难说清楚信息到底有多少。比如一本书中到底有多少信息量。直到 1948 年,香农(C. E. Shannon)...
  • ARYBD
  • ARYBD
  • 2017年04月12日 00:06
  • 1064

谈一谈信息熵

(这篇文章是我在微信公众号上发表的一篇文章) 这次博主和大家谈一谈信息熵。在大家学习数据挖掘算法中的决策树时,会知道决策树是通过信息熵来判读哪个特征是最适合做当前的根结点的。当然信息熵还可以被应...
  • Mtchy
  • Mtchy
  • 2016年10月10日 16:35
  • 533

计算文章中每个词的权重值-信息熵及代码实现

计算出每个词的信息熵可以用来作为词的权重,信息熵公式是: W代表该词,p代表该词左右出现的不同词的数目。 比如现在某篇文章中出现了两次 A W C, 一次B W D 那么W的左侧信息熵为: 2...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

小数学解决大问题 - 信息熵(由对数函数想到)

在这个物欲横流的社会中,任何物品都是明码实价的,甚至许多虚拟的物品(爱情、亲情)都可能用金钱来衡量。对于计算器科学而言,我们也希望能对信息做一个量化的衡量。比如,这篇博客包含多少信息量。可能有的人会说...

信息熵到底是什么

信息是我们一直在谈论的东西,但信息这个概念本身依然比较抽象。在百度百科中的定义:信息,泛指人类社会传播的一切内容,指音讯、消息、通信系统传输和处理的对象。 但信息可不可以被量化,怎样量化?答案当...

深入剖析Nodejs的异步IO

前言:Nodejs最赖以自豪的优势莫过于“单线程实现异步IO”了,也许你仍然丈二和尚摸不着头脑,Nodejs自我标榜是单线程,还能实现异步IO操作,这两者难道不是相互矛盾的么?葫芦里到底藏着什么药? ...

weka源码导入eclipse

2014年02月27日 ⁄ 综合 ⁄ 共 17522字 ⁄ 字号 小 中 大 ⁄ 评论关闭   weka源码获得与导入 1、下载weka3.7,解压其中的we...

【机器学习算法-python实现】决策树-Decision tree(1) 信息熵划分数据集

(转载请注明出处:http://blog.csdn.net/buptgshengod)
  • gshengod
  • gshengod
  • 2014年04月24日 07:28
  • 16190

【机器学习算法-python实现】决策树-Decision tree(1) 信息熵划分数据集

1.背景           决策书算法是一种逼近离散数值的分类算法,思路比较简单,而且准确率较高。国际权威的学术组织,数据挖掘国际会议ICDM (the IEEE International ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:机器学习知识点(一)文本字符信息熵Java实现
举报原因:
原因补充:

(最多只允许输入30个字)