Calibration API¶
- qca.calibrate_crisp(df, value_col, threshold, out_col=None, direction='ge', *, allow_nan=True)[source]¶
Calibrate a numeric column to crisp-set membership.
- Parameters:
df (DataFrame) – Source DataFrame. The original object is not modified.
value_col (str) – Numeric source column to calibrate.
threshold (float) – Cut point used by
direction.out_col (str | None) – Output column name. Defaults to
"{value_col}_crisp".direction (str) – One of
"ge","gt","le", or"lt".allow_nan (bool) – If
False, missing values invalue_colraiseValueError.
- Return type:
- qca.calibrate_piecewise(df, value_col, out_col=None, group_cols=None, quantiles=(0.10, 0.50, 0.90), lower=CALIBRATION_FULL_OUT, upper=CALIBRATION_FULL_IN, min_nonnull=5)[source]¶
Calibrate a numeric column to fuzzy membership by quantile anchors.
- Parameters:
df (DataFrame)
value_col (str)
out_col (str | None)
group_cols (Sequence[str] | None)
quantiles (tuple[float, float, float])
lower (float)
upper (float)
min_nonnull (int)
- Return type:
- qca.calibrate_logistic(df, value_col, out_col=None, *, full_out=None, crossover=None, full_in=None, anchor_quantiles=(0.05, 0.50, 0.95), mem_full_out=CALIBRATION_FULL_OUT, mem_full_in=CALIBRATION_FULL_IN, min_nonnull=5)[source]¶
Calibrate a numeric column to fuzzy membership with a logistic curve.
If explicit anchors are omitted, they are estimated from
anchor_quantilesover the finite, non-null values invalue_col.- Parameters:
df (DataFrame)
value_col (str)
out_col (str | None)
full_out (float | None)
crossover (float | None)
full_in (float | None)
anchor_quantiles (tuple[float, float, float])
mem_full_out (float)
mem_full_in (float)
min_nonnull (int)
- Return type:
Crisp-set calibration utilities.
- class qca.calibration.crisp.CrispCalibrationResult(df, out_col, threshold, direction, n_calibrated, n_in, n_out, n_skipped)[source]¶
Result returned by
calibrate_crisp().- Parameters:
df (DataFrame)
out_col (str)
threshold (float)
direction (Literal['ge', 'gt', 'le', 'lt'])
n_calibrated (int)
n_in (int)
n_out (int)
n_skipped (int)
- qca.calibration.crisp.crisp_calibrate_series(series, threshold, direction='ge')[source]¶
Convert a numeric series into crisp membership values.
Non-null finite values are mapped to
1.0or0.0. Missing values are preserved asNaNso callers can decide whether to drop or inspect them.- Parameters:
series (Series)
threshold (float)
direction (str)
- Return type:
Series
Piecewise-linear fuzzy-set calibration.
- class qca.calibration.piecewise.PiecewiseAnchor(group_key, p_low, p_mid, p_high, n_total, n_nonnull, is_valid)[source]¶
Anchor values estimated for one calibration group.
- Parameters:
group_key (tuple[Any, ...])
p_low (float)
p_mid (float)
p_high (float)
n_total (int)
n_nonnull (int)
is_valid (bool)
- class qca.calibration.piecewise.PiecewiseCalibrationResult(df, anchors, out_col, n_calibrated, n_skipped)[source]¶
Result returned by
calibrate_piecewise().- Parameters:
df (DataFrame)
anchors (list[PiecewiseAnchor])
out_col (str)
n_calibrated (int)
n_skipped (int)
- qca.calibration.piecewise.piecewise_fuzzy_scalar(x, p_low, p_mid, p_high, lower=CALIBRATION_FULL_OUT, upper=CALIBRATION_FULL_IN)[source]¶
Convert one numeric value into fuzzy membership with linear segments.
- Parameters:
x (float)
p_low (float)
p_mid (float)
p_high (float)
lower (float)
upper (float)
- Return type:
float
- qca.calibration.piecewise.piecewise_fuzzy_series(series, p_low, p_mid, p_high, lower=CALIBRATION_FULL_OUT, upper=CALIBRATION_FULL_IN)[source]¶
Convert a Series into fuzzy membership with linear segments.
- Parameters:
series (Series)
p_low (float)
p_mid (float)
p_high (float)
lower (float)
upper (float)
- Return type:
Series
Logistic fuzzy-set calibration.
- class qca.calibration.logistic.LogisticAnchor(full_out, crossover, full_in, slope, intercept, anchor_quantiles=None)[source]¶
Anchor and curve parameters for logistic calibration.
- Parameters:
full_out (float)
crossover (float)
full_in (float)
slope (float)
intercept (float)
anchor_quantiles (tuple[float, float, float] | None)
- class qca.calibration.logistic.LogisticCalibrationResult(df, anchor, out_col, n_calibrated, n_skipped)[source]¶
Result returned by
calibrate_logistic().- Parameters:
df (DataFrame)
anchor (LogisticAnchor)
out_col (str)
n_calibrated (int)
n_skipped (int)
- qca.calibration.logistic.logistic_calibrate_series(series, full_out, crossover, full_in, mem_full_out=CALIBRATION_FULL_OUT, mem_full_in=CALIBRATION_FULL_IN)[source]¶
Convert a Series into fuzzy membership with a logistic curve.
- Parameters:
series (Series)
full_out (float)
crossover (float)
full_in (float)
mem_full_out (float)
mem_full_in (float)
- Return type:
tuple[Series, LogisticAnchor]