///|
fn checksum(dataset : Array[Array[Double]]) -> Double {
let mut result = 0.0
for row in dataset {
for value in row {
result += value
}
}
result
}
///|
fn main {
let dense = @diagnose.synthetic_matrix(200, 12, 17)
let dataset = @diagnose.apply_missing_rate(dense, 0.2, 31)
let rounds = 20
println("MoonMissingness benchmark")
println(
"dataset_rows=200 dataset_columns=12 requested_missing_rate=0.2 rounds=20",
)
println("actual_missing_cells=\{@diagnose.missing_count(dataset)}")
println("actual_missing_rate=\{@diagnose.missing_fraction(dataset)}")
println("pattern_count=\{@diagnose.unique_pattern_count(dataset)}")
println("quality_score=\{@diagnose.dataset_quality_score(dataset)}")
let benchmark_pipeline = ["median", "knn", "mice"]
println("knn_k=5")
println("mice_iterations=3")
println("benchmark_seed=17")
println("strategies=\{Repr(benchmark_pipeline)}")
let mut mean_checksum = 0.0
for _ in 0.. row_total + number
None => row_total
}
})
})
}
println("mice_impute_checksum=\{mice_checksum}")
let mask = @impute.deterministic_holdout_mask(dataset, 0.1, 17)
let (masked, applied) = @impute.mask_observed_cells(dataset, mask)
let validation = @impute.impute_median(masked).map(fn(row) {
row.map(fn(value) { Some(value) })
})
println("holdout_cells=\{@impute.mask_count(applied)}")
println(
"holdout_mae=\{Repr(@impute.masked_mae(dataset, validation, applied))}",
)
println(
"holdout_rmse=\{Repr(@impute.masked_rmse(dataset, validation, applied))}",
)
println("benchmark_complete=true")
println("benchmark_reproducible=true")
}