Validated compositional geometry, balances and multivariate analysis in pure MoonBit
| 部分 | 能力 |
|---|---|
| 数值与几何 | scale-safe closure、CLR/ALR/ILR 及逆变换、扰动/逆扰动、power、内积、距离、测地插值 |
| 基与数据 | Helmert 基、完整正交 SBP、自定义对比基验证、单 balance、命名且防御复制的数据表 |
| 预处理 | 乘法零替换及替换量报告、原始单位伪计数、子组成、特征重排、穷尽分组 amalgamation |
| 统计 | 加权中心、中心化、加权离散度、CLR/ALR/ILR 协方差、变化矩阵、总方差 |
| 模型 | Jacobi 对称特征分解、ILR PCA/解释率/新样本投影/重建、确定性 k-means/预测、Cholesky 正则化高斯评分 |
| 查询与集成 | 距离矩阵、稳定近邻、平方距离 medoid、有界 JSON 协议、命令行 |
moon add usersD609/mooncoda@0.1.0import {
"usersD609/mooncoda" @coda,
}
options("is-main": true)///|
fn main {
try {
let x = [60.0, 30.0, 10.0]
let b = @coda.helmert_basis(3)
let z = @coda.ilr(x, b)
let restored = @coda.ilr_inverse(z, b)
assert_true(@coda.distance(x, restored) < 1.0e-9)
println("ILR roundtrip passed")
} catch {
_ => panic()
}
}let data = @coda.dataset(
["sand", "silt", "clay"],
["lot1", "lot2", "lot3", "lot4"],
[[60.0, 30.0, 10.0], [55.0, 30.0, 15.0],
[10.0, 30.0, 60.0], [15.0, 35.0, 50.0]],
)
let fit = @coda.pca(data, 2)
let scores = fit.transform(data)
let mixtures = fit.reconstruct(scores)
let groups = @coda.kmeans(data, 2)
let detector = @coda.gaussian(data, 0.01)
let distances = detector.squared_mahalanobis(data)
assert_true(mixtures.length() == 4 && distances.length() == 4)
assert_true(groups.converged())let report = @coda.multiplicative_replace([0.0, 2.0, 4.0], delta=0.001)
let transformed = @coda.clr(report.composition())
assert_true(report.zero_count() == 1 && transformed.length() == 3)moon run cmd/mooncoda --target js -- '{"op":"pca","features":["a","b","c"],"samples":["s1","s2","s3"],"rows":[[1,2,4],[2,3,1],[4,1,2]],"components":2}'| op | 额外字段 | 结果字段(均含 ok/operation/features/samples) |
|---|---|---|
| analyze | 无;要求至少两行 | center, clr, ilr, variation, total_variance |
| pca | components 整数 1..D-1;至少两行 | scores, reconstructed, eigenvalues, explained_ratio, loadings_ilr, center |
| cluster | clusters 整数;可选 max_iterations 默认 100 | assignments(0 起)、centers、counts、inertia、iterations、converged |
| score | ridge 正数 | squared_mahalanobis, negative_log_density_ilr, rank(0 起降序索引), ridge, center |
moon info
moon fmt
moon fmt --check
moon check --deny-warn --target wasm-gc
moon test --deny-warn --target wasm-gc
moon build --deny-warn --target wasm-gc
moon run examples/workflows --target wasm-gc
# 对 wasm / js / native 重复上述目标命令
moon build --target js --deny-warn
python tools/verify_oracle.py
python tools/audit_source.pypub(all) suberror CodaError {
Invalid(String)
Shape(String)
Budget(String)
Numerical(String)
} derive(Debug)pub struct Medoid {
sample : String
index : Int
objective : Double
}pub struct Neighbor {
sample : String
index : Int
separation : Double
}fn process_json(text : String) -> StringInstall
Download zipValidated compositional geometry, balances and multivariate analysis in pure MoonBit