Expand description
Return the weighted target average for first n data in data vector.
Example
use gbdt::decision_tree::{DataVec, Data, VALUE_TYPE_UNKNOWN};
use gbdt::fitness::{average, almost_equal};
let mut dv: DataVec = Vec::new();
dv.push(Data {
feature: Vec::new(),
target: 1.0,
weight: 0.1,
label: 1.0,
residual: 0.5,
initial_guess: VALUE_TYPE_UNKNOWN,
});
dv.push(Data {
feature: Vec::new(),
target: 1.0,
weight: 0.2,
label: 0.0,
residual: 0.5,
initial_guess: VALUE_TYPE_UNKNOWN,
});
dv.push(Data {
feature: Vec::new(),
target: 0.0,
weight: 0.3,
label: 1.0,
residual: 0.5,
initial_guess: VALUE_TYPE_UNKNOWN,
});
dv.push(Data {
feature: Vec::new(),
target: 0.0,
weight: 0.4,
label: 0.0,
residual: 0.5,
initial_guess: VALUE_TYPE_UNKNOWN,
});
assert!(almost_equal(0.3, average(&dv, dv.len())));
Panic
If the specified length is greater than the length of data vector, it will panic.