fastml
rfastmlpackage.bsky.social
fastml
@rfastmlpackage.bsky.social
Automated #MachineLearning for #Rstats, done right. Leakage-proof, interpretable, and survival-aware. Tutorial: https://selcukorkmaz.github.io/fastml-tutorial/
fastml bridges the gap between "AutoML" and "Rigorous Statistics."

It enforces safety guards against data leakage while giving you the speed of modern ML.

📦 Try it out development version: devtools::install_github("selcukorkmaz/fastml@devel")
November 30, 2025 at 9:36 AM
5️⃣ The Solution (Counterfactuals)

"What if we offered Customer 56 a 1-year contract?"

Using fastexplain(
model_results,
method = "counterfactual",
observation = risky_customer
)

Moving from "Month-to-Month" to "One Year" drops their churn risk from ~76% to ~26%.
November 30, 2025 at 9:36 AM
4️⃣ The "Why" (Local)

Let's look at Customer 56. They have a 76% probability of churning. Why?

Using

fastexplain(
model_results,
method = "breakdown",
observation = risky_customer),

we see the additive drivers: 🔴 Fiber Optic Internet (+10.8%) 🔴 Low Tenure (+13.4%)
November 30, 2025 at 9:36 AM
The "Why" (Global)

We can’t trust a black box. Running fastexplain(model_results, method = "dalex") reveals the drivers across the whole company.

📉 Tenure and Contract Type are the biggest predictors of churn.
November 30, 2025 at 9:36 AM
2️⃣ The Leaderboard

Who won? Surprisingly, Logistic Regression took the crown 👑 with an AUC of 0.846, beating Random Forest and XGBoost.

summary(model_results) gives you metrics, formatted and ready for reporting and plot(model_results, type = "roc") visualizes ROC curves.
November 30, 2025 at 9:36 AM
1️⃣ The One-Liner

We pass the raw wa_churn dataset to fastml().

It automatically: ✅ Handles missing values (medianImpute) ✅ Encodes categoricals ✅ Splits data ✅ Runs Bayesian Optimization on XGBoost, RF, and LogReg.

No recipes. No boilerplate. Just results. ⚡️
November 30, 2025 at 9:36 AM