mirror of
https://github.com/zeromicro/go-zero.git
synced 2025-02-03 00:38:40 +08:00
15 lines
264 B
Go
15 lines
264 B
Go
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)))
|
|
}
|