mrv.pipeline – Labels-first validation pipeline¶
mrv.pipeline – Labels-first validation pipeline.
Core API (no model fitting – users supply labels):
from mrv.pipeline import validate_rep, validate_res
# Representation invariance: user provides labels from their own models
result = validate_rep(labels={
"SPY": {"rep_a": labels_a, "rep_b": labels_b, "rep_c": labels_c}
})
# Resolution invariance: user provides labels at each frequency
result = validate_res(labels={
"SPY": {"5m": labels_5m, "15m": labels_15m, "1h": labels_1h, "1d": labels_1d}
})
Convenience API (model fitting included – requires pip install scikit-learn):
from mrv.pipeline import run
run("config.yaml", "rep") # data → factors → model → validate → report
- mrv.pipeline.validate_rep(labels, risk_proxy=None, prices=None, cfg=None, impact_fn=None)[source]¶
Representation invariance test – labels in, metrics out.
- Parameters:
labels (
Dict[str,Dict[str,ndarray]]) –{asset: {spec_label: ndarray}}. At least 2 specs per asset.risk_proxy (
Optional[Dict[str,ndarray]]) –{asset: risk_array}for ordering consistency (Spearman).prices (
Optional[Dict[str,Series]]) –{asset: price_series}for business impact computation.cfg (
Optional[Dict[str,Any]]) – Config for report paths / thresholds.impact_fn (
Optional[Any]) –(labels, prices) -> floatfor business impact.
- Return type:
- mrv.pipeline.validate_res(labels, event_window=None, calm_window=None, cfg=None, impact_fn=None)[source]¶
Resolution invariance test – labels in, metrics out.
- Parameters:
labels (
Dict[str,Dict[str,Series]]) –{asset: {freq: pd.Series}}. At least 2 frequencies per asset.event_window (
Optional[Any]) –(start_date, end_date)for event-period analysis.calm_window (
Optional[Any]) –(start_date, end_date)for calm-period analysis.cfg (
Optional[Dict[str,Any]]) – Config for report paths / thresholds.
- Return type:
- mrv.pipeline.download(config=None, cfg=None)[source]¶
Download data from Yahoo Finance or IB Gateway (based on config).
The
download.sourcefield in config.yaml controls the data source:yahoo(default, free) orib(requires IB Gateway running).
- mrv.pipeline.run(config=None, validator='rep', cfg=None, impact_fn=None)[source]¶
Convenience: config → data → model → validate → report.
This is the full pipeline for users who want mrv-lib to handle everything including model fitting. Requires
pip install scikit-learn.For the labels-first API (recommended), use
validate_rep()orvalidate_res()directly.