model opshapemodel → signalimport fullseye as fs; fs.ledger.shape_explained_variance(model) (実装を直接呼ぶなら import shapestats; shapestats.shape_explained_variance(model)、台帳から引くなら opsshapestat.get("shape_explained_variance"))各主成分の寄与率(合計 1)。→ (k,)。
式: variance / total_variance。分母は model["total_variance"](shape_pca
が全特異値から計算した総分散)で、無ければ variance.sum()。
model: shape_pca の返り値。必須キーが無ければ ValueError。(k,) float64、各要素は [0, 1]。shape_pca(n_components=0)
(全成分)なら合計は 1。n_components で打ち切ったモデルでは合計が 1 未満
になる(切り捨てた成分の分だけ足りない)―― 「上位 k 本でどれだけ説明できるか」
を読むにはむしろその方が正しい。shape_pca の分散は標本分散(K-1 で割る)なので、個体数が少ないと
固有値の絶対値は膨らむが、比であるこの量は影響を受けにくい。累積和
(cumsum)で「99 % に何本要るか」を決め、shape_mahalanobis の cumulative
や shape_synthesize の n_modes に渡す。
py -3.11 examples/shapestat_landmark_tour.pysignal を入力に取れる)model)shape_pca · shape_project · shape_reconstruct · shape_mahalanobis · shape_synthesize
Provenance: shapestats.py — SHAPESTAT operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.