entropy.go 264 B

1234567891011121314
  1. package mathx
  2. import "math"
  3. func CalcEntropy(m map[interface{}]int, total int) float64 {
  4. var entropy float64
  5. for _, v := range m {
  6. proba := float64(v) / float64(total)
  7. entropy -= proba * math.Log2(proba)
  8. }
  9. return entropy / math.Log2(float64(len(m)))
  10. }