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