predict method
Implementation
int predict(List<double> x) {
if (weights == null) throw StateError('Model not fitted');
final k0 = weights!.length;
var best = 0;
var bestP = -double.infinity;
for (var j = 0; j < k0; j++) {
var exponent = 0.0;
for (var d = 0; d < x.length; d++) {
final diff = x[d] - means![j][d];
exponent += (diff * diff) / (2.0 * covs![j][d]);
}
final coef =
pow(2 * pi, x.length / 2) * sqrt(covs![j].reduce((a, b) => a * b));
final p = (1.0 / coef) * exp(-exponent) * weights![j];
final lp = log(p + 1e-300);
if (lp > bestP) {
bestP = lp;
best = j;
}
}
return best;
}