The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
methods package from Imports, added explicit
importFrom declarations for predict(),
model.frame(), model.response(),
setNames(), median() (stats) and
tail() (utils) via a new package-level
R/funcml-package.R, and excluded LICENSE.md
from the build (the package uses the standard GPL-3 license
text that R bundles automatically; the file remains in the GitHub repo
only). R CMD check --as-cran now passes with 0 errors, 0
warnings, 0 notes.compare_learners() to compare()
for consistency with the other short, verb-named entry points
(fit(), evaluate(), tune(),
interpret(), estimate()). This is a breaking
change with no backward-compatible alias: code calling
compare_learners() must be updated to call
compare(). Note that compare() masks
testthat::compare() when both packages are attached.Author/Maintainer
DESCRIPTION fields (they had drifted out of sync with
Authors@R, triggering a R CMD check NOTE) in
favor of deriving them from Authors@R, and fixed a
non-canonical CRAN task view URL in the README.
R CMD check --as-cran now passes with 0 errors, 0 warnings,
0 notes.inst/CITATION, which
hardcoded “R package version 0.7.1” and had drifted six releases behind.
R now falls back to the default citation auto-generated from
DESCRIPTION, which always reflects the installed
version.citation("funcml") output instead of hardcoded text.+0.148/-0.089 style,
signed), SHAP feature importance, SHAP interaction strength, and local
surrogate (interpret(method = "local_model"))
contributions. The local surrogate plot’s colors were also swapped to
match the SHAP convention (positive = red, negative = green).interpret(method = "shap", ncores = <n>) with
xgboost, lightgbm, mlp,
densemlp, or bart on Unix could hang
indefinitely, because functionals::fmap() forks the process
(parallel::mclapply()) and those models’ fitted state holds
a C/C++ handle that is not valid in the forked child.
ncores is now ignored (with a warning) for those models,
falling back to sequential; other models parallelize as before.kind = "waterfall") is now a
zero-anchored per-feature contribution bar chart instead of a cumulative
chained waterfall: every bar starts at 0 and extends to its own SHAP
value, so no bar crosses from one side of the reference line to the
other. The vertical reference line is fixed at 0 instead of the baseline
prediction.kind = "summary"/"beeswarm") now uses the
standard SHAP blue (low) to red (high) colorbar on the right, instead of
the previous bottom yellow-to-purple legend, and drops the per-feature
numeric labels for plain feature names. It also gained a v
argument to restrict the plot to a single feature.interpret(method = "shap") gained an
ncores argument that parallelizes the per-observation Monte
Carlo SHAP computation via functionals::fmap() (the same
backend already used by
evaluate()/tune()/compare_learners()).
Each observation is now seeded independently
(seed + observation_index - 1) so results are identical
whether run sequentially or in parallel; this changes the exact values
produced by a seeded interpret(method = "shap") call
compared to earlier releases, though the estimator itself (Monte Carlo
permutation SHAP) is unchanged.evaluate(),
compare_learners(), tune(),
interpret(method = "calibration"),
interpret(method = "dca"), roc_curve(),
auc_ci()) now round numeric columns to 4 digits by default
(digits argument on the relevant
print()/summary() methods and on
auc_ci()), instead of printing full floating-point
precision.kind = "beeswarm" / "summary") to show mean
|SHAP value| next to each feature name, a yellow-to-purple
viridis “plasma” feature-value gradient, and a bottom
legend with Low/High endpoints. Also fixed a row-order misalignment bug
in the per-feature value scaling introduced by the 0.8.0 native SHAP
plot rewrite.densemlp as a new learner, wrapping the published
densemlp CRAN package. It complements the existing built-in
mlp learner with richer architecture options (residual
connections, gated blocks, input projection, focal loss, label
smoothing, LR schedules) for regression and classification.roc_curve() and auc_ci(), backed by
the pROC package: roc_curve() returns the full
sensitivity/specificity curve plus a plot() method, and
auc_ci() reports AUC with a DeLong (default) or bootstrap
confidence interval. funcml’s own fast auc() is unchanged
and remains what resampling/tuning use internally.dca() computes net benefit across risk thresholds for the
model, “treat all”, and “treat none” strategies, and
interpret(method = "dca") runs it directly on a fitted
binary classifier with a plot() method.shapviz dependency. All SHAP plot kinds
(waterfall, force,
summary/beeswarm,
importance/bar, dependence,
dependence2d, interaction) are now native
ggplot2 implementations reading directly from funcml’s own
SHAP result table. The underlying SHAP values were already funcml’s own
Monte Carlo permutation estimate
(interpret(method = "shap")); shapviz was only ever used
for plotting.theme_funcml() to match the CLAVUS Nature
Medicine figure style: theme_classic() base, Okabe-Ito
colorblind-safe palette, bold unboxed strip labels, and
grey92 major gridlines. All package plots
(interpret(), evaluate(),
compare_learners(), tune(),
estimate()) now share this theme instead of each building
its own ad-hoc theme_bw()/theme_minimal()
variant.do.call(rbind, ...) to data.table::rbindlist()
for faster combination of many small result frames. All public return
objects remain plain data.frames; no API or behavior
change.DESCRIPTION, covering the plug-in g-computation
method.plot.funcml_pdp() now fixes the y-axis to the [0, 1]
probability scale for classification PDPs (type = "prob"),
instead of auto-scaling to the local range of the curve, which could
visually exaggerate small effects. Regression PDPs are unaffected.MASS,
mgcv, nnet, rpart,
glmnet, ranger, e1071,
randomForest, gbm, C50,
kknn, earth, naivebayes,
mda, ada, pls,
partykit, dbarts, torch,
xgboost, lightgbm, densemlp) from
Suggests to Imports, so a standard
installation always has every advertised learner available and
learners()/fit() cannot fail with a
missing-package error for a registered model.mlp as an internal torch-backed learner for
regression, binary classification, and multiclass classification.funcml companion paper is
submitted to JMLR.vip
to use permutation importance consistently while retaining
shapviz-enhanced SHAP plotting when the optional plotting
packages are installed.funcml as a machine learning framework for
R with stable S3 interfaces for fitting, prediction, evaluation, tuning,
learner comparison, interpretation, and plug-in g-computation.evaluate() and
compare_learners(), including fold-level standard errors
and confidence intervals in summaries and plots.search = "random" and
n_evals, plus nested resampling support in
tune() for outer-fold performance estimates of the
model-selection procedure.list_learners() as a learner capability catalog
and improved package metadata, citation, and repository scaffolding for
release and paper preparation.catboost learner backend from the registry
and package metadata.lightgbm as a standard learner dependency
available with funcml.evaluate() and
compare_learners(), including fold-level standard errors
and confidence intervals in summaries and plots.estimate() with configurable interval
reporting, including bootstrap percentile intervals for average causal
estimands.search = "random" and
n_evals for budgeted hyperparameter search.tune() via
outer_resampling, so tuning can report unbiased outer-fold
performance estimates for the selected workflow.vip, pdp, iml, and a minimal
internal shapviz layer.vip and pdp dependencies
with internal implementations while preserving the existing
funcml entrypoints.local / local_model to an
iml::LocalModel-style sparse local surrogate using
glmnet and Gower weighting.These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.