MCPcopy Create free account
hub / github.com/Open-Quant/openquant / improve_clusters

Function improve_clusters

crates/openquant/src/onc.rs:191–219  ·  view source on GitHub ↗
(
    corr_mat: &DMatrix<f64>,
    kept_clusters: &BTreeMap<usize, Vec<usize>>,
    top_clusters: &BTreeMap<usize, Vec<usize>>,
)

Source from the content-addressed store, hash-verified

189}
190
191fn improve_clusters(
192 corr_mat: &DMatrix<f64>,
193 kept_clusters: &BTreeMap<usize, Vec<usize>>,
194 top_clusters: &BTreeMap<usize, Vec<usize>>,
195) -> Result<ClusterState, OncError> {
196 let mut clusters_new: BTreeMap<usize, Vec<usize>> = BTreeMap::new();
197 for members in kept_clusters.values() {
198 clusters_new.insert(clusters_new.len(), members.clone());
199 }
200 for members in top_clusters.values() {
201 clusters_new.insert(clusters_new.len(), members.clone());
202 }
203
204 let mut new_idx = Vec::new();
205 for members in clusters_new.values() {
206 new_idx.extend(members.iter().copied());
207 }
208
209 let corr_new = submatrix(corr_mat, &new_idx);
210 let labels = labels_from_clusters(corr_mat.nrows(), &clusters_new);
211 let dist = corr_to_distance(corr_mat);
212 let silh_scores_new = silhouette_samples(&dist, &labels);
213
214 Ok(ClusterState {
215 ordered_correlation: corr_new,
216 clusters: clusters_new,
217 silhouette_scores: silh_scores_new,
218 })
219}
220
221fn cluster_kmeans_base(
222 corr_mat: &DMatrix<f64>,

Callers 1

cluster_kmeans_topFunction · 0.85

Calls 6

submatrixFunction · 0.85
labels_from_clustersFunction · 0.85
corr_to_distanceFunction · 0.85
silhouette_samplesFunction · 0.85
valuesMethod · 0.80
lenMethod · 0.80

Tested by

no test coverage detected