package datascience import "math" // MinMaxScale escala los valores al rango [0, 1] usando min-max normalización. // Si min == max, retorna un slice de ceros. func MinMaxScale(data []float64) []float64 { n := len(data) if n == 0 { return []float64{} } minVal := math.Inf(1) maxVal := math.Inf(-1) for _, v := range data { if v < minVal { minVal = v } if v > maxVal { maxVal = v } } rang := maxVal - minVal result := make([]float64, n) if rang == 0 { return result } for i, v := range data { result[i] = (v - minVal) / rang } return result }