You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
go-zero/core/mathx/entropy.go

15 lines
264 B
Go

4 years ago
package mathx
import "math"
func CalcEntropy(m map[interface{}]int, total int) float64 {
var entropy float64
for _, v := range m {
proba := float64(v) / float64(total)
entropy -= proba * math.Log2(proba)
}
return entropy / math.Log2(float64(len(m)))
}