static double entropy (String str) {
return str.chars().boxed().collect(Collectors.toMap(s -> s, s -> 1, Integer::sum)).entrySet()
.stream().mapToDouble(i -> 1.0*i.getValue()/str.length()).map(i -> -1.0 * i * Math.log(i)).sum();
}
如上,只是我看到一个在使用svm算法分类之前把数据提取特征的转换公式,但不懂这是什么原理,求高手解释下这个公式原理