diff --git a/src/ensemble/base_forest_regressor.rs b/src/ensemble/base_forest_regressor.rs index 223a8b90..4810fcf9 100644 --- a/src/ensemble/base_forest_regressor.rs +++ b/src/ensemble/base_forest_regressor.rs @@ -94,12 +94,12 @@ impl, Y: Array1 .unwrap_or((num_attributes as f64).sqrt().floor() as usize); let mut rng = get_rng_impl(Some(parameters.seed)); - let mut trees: Vec> = Vec::new(); + let n_trees = parameters.n_trees as usize; + let mut trees: Vec> = Vec::with_capacity(n_trees); let mut maybe_all_samples: Option>> = Option::None; if parameters.keep_samples { - // TODO: use with_capacity here - maybe_all_samples = Some(Vec::new()); + maybe_all_samples = Some(Vec::with_capacity(n_trees)); } let mut samples: Vec = (0..n_rows).map(|_| 1).collect(); diff --git a/src/ensemble/random_forest_classifier.rs b/src/ensemble/random_forest_classifier.rs index 0f86a4df..8553472a 100644 --- a/src/ensemble/random_forest_classifier.rs +++ b/src/ensemble/random_forest_classifier.rs @@ -475,13 +475,12 @@ impl, Y: Array1> = Vec::new(); + let n_trees = parameters.n_trees as usize; + let mut trees: Vec> = Vec::with_capacity(n_trees); let mut maybe_all_samples: Option>> = Option::None; if parameters.keep_samples { - // TODO: use with_capacity here - maybe_all_samples = Some(Vec::new()); + maybe_all_samples = Some(Vec::with_capacity(n_trees)); } for _ in 0..parameters.n_trees {