NEWS
dsld 2.0.0 (2026-10-25)
This release preserves the public R interfaces, corrects numerical and
prediction errors, and improves documentation and validation. Both the R
package and Python interface use version 2.0.0.
Dependencies and packaging
- Remove the unused
fairness import that caused CRAN to archive DSLD when
that dependency was archived in November 2025. The active fairml dependency
remains. This change has not been submitted to CRAN.
- Declare the optional
cccp and CVXR solvers and explain how to install
missing optional packages.
- Add regression checks, documentation/example validation, and scheduled CI.
Exclude developer artifacts and Python caches from the R source package.
- Update the maintainer address to
[email protected], add the methods-paper
citation, and document the bundled datasets' dimensions and data usage.
Correctness
- Use the positive-class probability column when scoring binary random forests.
Cross-validation no longer flattens both probability columns together.
- Preserve
yesYVal in binary matching and EDF predictions, including a positive
label of "0"; report original class labels in EDF classification results.
- Fix frequency-table column labels and preserve row alignment when sensitive
attributes contain missing values. Undefined correlations remain
NA.
- Use fitted model matrices for linear prediction standard errors and sensitive
group contrasts. Correct contrast ordering for four or more groups and avoid
confusing similarly named covariates with the sensitive attribute.
- Apply KNN scaling and deweights consistently at training and prediction; honor
scaleX = FALSE, column reordering, and one-predictor data frames.
- Correct linear ridge augmentation so its intercept is unpenalized. Retain the
original pseudo-observation method for the logistic EDF variant.
- Accept omitted deweights in both ridge variants, and preserve ordered-factor
and custom-contrast encodings when predicting with fairml models.
- Construct linear, logistic, and linear-ridge formulas from literal column
names, allowing outcome names with spaces, operators, or backticks without
interpreting them as expressions or emitting formula-parsing warnings.
- Preserve explicit sensitive-factor contrasts in linear/logistic fits when
all levels are observed, including their coefficient labels and values.
- Reuse cross-validation folds across candidates, stratify binary outcomes,
weight errors by test-fold size, and retain undefined group correlations.
- Accept data-frame comparison points in
dsldML; compare feature sets using a
shared holdout in dsldTakeALookAround.
- Fix density slider indexing, character group handling, plot ranges, scatter
row limits, and binary-response validation in conditional-disparity plots.
Drop unused factor levels and omit constant axes in parallel coordinates.
- Detect parallel-coordinate indicators that are constant within a plotted
group before density scaling; omit them with an explicit warning. This avoids
a failure found on Linux with current R and dependency binaries.
- Convert integer/character inputs for bnlearn and preserve optimizer warnings
from fairml instead of suppressing them.
Documentation and compatibility
- Preserve all 25 exported R function signatures and defaults, model families,
datasets, and historical result-field names.
- Clarify that
trainAcc and testAcc are prediction errors, and that sensitive
correlations are associations rather than universal fairness measures.
- Refresh both READMEs, help pages, the function guide, and the Quick Start.
Quick Start results now come from executable chunks.
- Numerical results affected by the fixes above may change. Invalid inputs now
produce earlier, clearer errors.
- Preserve 42 public callable signatures and defaults; add optional final
model_args support to dsldPyFairUtils.
- Accept pandas and R data frames consistently, preserve option types, and call
R generic methods directly without temporary variables in R's global workspace.
- Preserve existing result fields and add explicit EDF class/probability fields,
matching results, and common-variable rankings.
- Return usable Plotly figures, honor static-plot display controls, and close
graphics devices and delete temporary images even when rendering fails.
- Correct notebook imports, dataset preparation, class labels, and train/test
handling. Rebuilt examples use bundled data and reproducible random seeds.
- Require Python 3.9 or newer and provide optional notebook/example dependencies.