18 lines
306 B
Rust
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() }
|