界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

postprocessing

postprocessing

【效率与协作】Use Fairlearn ThresholdOptimizer and threshold-optimizer plots to adjust trained predictors under group fairness constraints.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: postprocessing description: "Use Fairlearn ThresholdOptimizer and threshold-optimizer plots to adjust trained predictors under group fairness constraints." disable-model-invocation: true metadata: disco-role: operating license: MIT

Fairlearn postprocessing

Use this sub-skill when the task asks to adjust a trained predictor's scores or predictions with group-specific thresholds: ThresholdOptimizer, plot_threshold_optimizer, prefit, predict_method, tol, demographic parity, equalized odds, false/true positive/negative rate parity, or threshold interpolation dictionaries.

Quick workflow

  1. Choose or fit a base estimator that exposes a useful score method: predict_proba, decision_function, or predict.
  2. Create ThresholdOptimizer(estimator=..., constraints=..., objective=..., predict_method=...).
  3. Set prefit=True only when the estimator is already fitted and will not be cloned by cross-validation.
  4. Fit the threshold optimizer with sensitive_features=....
  5. Predict with the same sensitive-feature grouping and, when deterministic output matters, pass random_state to predict.
  6. Route to ../assessment/ to compare subgroup metrics before and after postprocessing.

Read these references

Core APIs to recognize

  • ThresholdOptimizer(*, estimator=None, constraints="demographic_parity", objective="accuracy_score", grid_size=1000, flip=False, prefit=False, predict_method="auto", tol=None)
  • ThresholdOptimizer.fit(X, y, *, sensitive_features, **kwargs)
  • ThresholdOptimizer.predict(X, *, sensitive_features, random_state=None)
  • plot_threshold_optimizer(threshold_optimizer, ax=None, show_plot=True)

Boundary rules

  • This sub-skill owns post-fit threshold/interpolation mitigation. Use ../reductions/ for fairness-constrained retraining and ../preprocessing/ for feature transformation.
  • Use ../assessment/ for grouped metrics and model-comparison plots. plot_threshold_optimizer visualizes the postprocessor internals, not a full fairness report.
  • Use ../installation/ or root troubleshooting when matplotlib is missing.
  • Use ../adversarial/ for neural adversarial fairness; it is not a threshold optimizer.

Operating rules

  • y must be binary for ThresholdOptimizer in this source.
  • sensitive_features are required for both fit and predict.
  • Prefer predict_proba or decision_function over hard-label predict when meaningful scores are available.
  • equalized_odds does not support tol relaxation in the inspected source.
  • prefit=True is unsafe with estimator cloning workflows such as cross_val_score or GridSearchCV; use prefit=False there.
  • Postprocessing can change output randomness. Use random_state in predict for reproducible reports.

Fast validation

Run:

python sub-skills/postprocessing/scripts/smoke_threshold_optimizer.py

Run plot coverage in a matplotlib-capable environment:

python sub-skills/postprocessing/scripts/smoke_threshold_optimizer.py --plot --output-dir /tmp/fairlearn-threshold-plots
我的收藏