sr-rs/src/fitness.rs

18 lines
306 B
Rust

use crate::ast::Expr;
use crate::eval::eval_expr;
pub fn mse(expr: &Expr, x: &[Vec<f64>], y: &[f64]) -> f64 {
let n = x.len();
let mut s = 0.0;
for i in 0..n {
let yi = eval_expr(expr, &x[i]);
let d = yi - y[i];
s += d * d;
}
s / n as f64
}
pub fn complexity(expr: &Expr) -> usize { expr.nodes.len() }