โ๏ธ Analysis settingsSave all your choices for this dataset and restore them another day, then re-run in one click. Settings files contain choices and column names only, never patient values.
What would you like to do?
Simplified view: expert settings (model hyperparameters, automatic tuning, custom seeds and, for Beginner, the decision threshold, recalibration, ranking metric and model-selection method) are hidden and use their recommended defaults: cross-validated model selection, threshold 0.5, no recalibration, default seed 42. Choose "Advanced" to see and change them.
๐ Use real patient data only as your approvals allow, on a managed computer (ideally encrypted and offline, see the ethics pack); not on shared or public computers. Remove identifiers before loading, store any exported file that contains patient values like the original data, and use ๐งน Clear session or close the tab when finished.
๐ Upload Clinical Dataset (.csv)
Upload your clinical, laboratory, imaging, or physiological dataset or explore with pre-loaded medical cohorts.
Sample Medical Cohorts:
๐
Drag & drop your clinical .csv file here, or click to browse
Client-side execution — confidential patient health data never leaves your browser.
Dataset Preview (Initial Records)
No dataset loaded yet. Upload a CSV file or click a sample cohort above.
๐ท๏ธ Variable Role & Measurement Scale Configuration
Specify the analytical role (Meta, Feature, Target) and clinical measurement scale (Continuous, Ordinal, Nominal) for each column.
Meta / IDFeature (Input)Target (Outcome)
โ๏ธ Tick a variable to include it in the analysis; untick to exclude it.
๐งน Clinical Missing Data Detection & Imputation
Choose tailored mathematical imputation strategies based on whether variables are continuous, ordinal, or nominal.
One choice for the whole analysis. Single imputation fills each gap once with the per-variable method chosen in the table below (median, k-NN, โฆ). Multiple imputation (MICE) assumes values are missing at random (whether a value is missing depends only on information in the data, not on the missing value itself); consider why values are missing in your dataset (for example, a test not done because the patient was too unwell), as no imputation method can correct data missing for reasons not captured in the data. It replaces those methods everywhere: the table then shows MICE for every incomplete predictor, and MICE, starting from the original missing values, is used for the final models, inside every cross-validation fold (tuning, model selection, recalibration) and inside every bootstrap resample (Option C). "MICE 5" and "MICE 10" mean 5 or 10 completed datasets, each built over 10 rounds of chained equations.Imputation is done once per set of patients and settings, and reused when you train other models in this session. To skip it in a later session, save the imputed data, then load it after loading the same dataset and settings. Unlike the settings file, the imputed-data file contains patient-level data: store and share it only as the original dataset is permitted to be.Multiple imputation fills each missing value several times, with plausible values drawn from similar Training patients; one model is trained on each completed copy and their predictions are averaged. Testing and new patients with missing values are imputed the same way, using only the Training patients (never the outcome). Leaving the outcome out keeps development and use consistent (new patients have no outcome), as recommended for prediction models (Sisk et al., 2023), at the cost of slightly weakening the associations of heavily imputed predictors. It reflects the uncertainty about missing values and avoids the bias of filling every gap with an average; training takes about as many times longer as there are imputations, and longer again when it is repeated inside cross-validation folds or bootstrap resamples (the estimate above includes this).
Select from a multilayer perceptron neural network and classic machine learning algorithms for clinical prediction.
๐ฏ Model Testing Scope & Tournament Selection
Choose whether to train and benchmark a single algorithm, a custom subset of models, or all available models simultaneously.
โฑ๏ธ Time-to-event outcome (chosen in Step 2): Step 4 fits a Cox proportional-hazards model (penalised automatically if it does not converge) with the predictors from Step 2 and the missing-data handling from Step 3 (single imputation or MICE), using the validation design chosen below. The model choice and the yes/no settings (threshold, recalibration, ranking metric) do not apply.
Neural Network (MLP)
Neural Network
Multilayer perceptron (2โ3 dense hidden layers) with dropout, L2 weight decay, Adam optimizer and early stopping on an internal validation split of the training data. If TensorFlow.js fails, a linear fallback is used and clearly flagged.
๐ฑ Seed:
Custom integer seed (reproducible on the same browser & TF.js backend; GPU arithmetic can differ slightly across devices).
Random Forest
Ensemble
Bootstrap decision trees with random feature subsets; Gini (classification) or variance-reduction (regression) splits searched exactly over every threshold (or, for 5,000+ patients, an approximate grid of ~10 thresholds per feature). Impurity-based (MDI) importance ranks features but is not evidence of causal or clinical effect.
๐ฑ Seed:
Custom bootstrap and feature split seed.
Logistic / Ridge Regression
Generalized Linear
L2-regularized linear (ridge) or logistic/softmax regression fitted by gradient descent on standardised features.
๐ฑ Seed:
Custom seed for parameter initialization.
k-Nearest Neighbors (k-NN)
Instance-Based
Non-parametric local distance classification using Euclidean metric in standardized feature space.
๐ฑ Seed:
Custom seed for equidistant ranking tie-breaks.
Naive Bayes (Gaussian + Bernoulli)
Probabilistic
Probabilistic classifier assuming conditional independence of features: Gaussian likelihoods for continuous features, Laplace-smoothed Bernoulli likelihoods for 0/1 indicators (one-hot categories, binary flags).
๐ฑ Seed:
Reference seed recorded for provenance.
Gradient-Boosted Trees
Boosting
Shallow decision trees added one after another, each correcting the errors of the previous ones (histogram gradient boosting, as in LightGBM / XGBoost). Often the strongest model for tabular data; early stopping on an internal validation slice of the training data limits overfitting.
๐ฑ Seed:
Reference seed recorded for provenance.
Voting / Weighted Ensemble
Voting Ensemble
Combines neural network, random forest, logistic/ridge, k-NN (and optionally naive Bayes) by soft probability averaging, hard majority voting, or balanced-accuracy weights learned on an internal validation split of the training data. This is a voting ensemble, not a cross-validated stacked Super Learner.
๐ฑ Master Seed:
Propagates deterministic seeds to constituent models.
Training Configuration & Fine-Tuning Hyperparameters
Tune Parameters for:
๐งช Training & Testing Validation Protocol
Choose how training and evaluation datasets are provided and configure your retraining protocol.
Each resample repeats the process (missing-value filling, encoding, scaling, training and, if switched on, the automatic tuning) on patients drawn with replacement. The model is scored on its resample and on the original patients; the average difference (the optimism) is subtracted from the performance of the final model trained on all patients. Flexible models (Random Forest, boosted trees, k-NN, neural networks) are reported with the .632+ estimate instead, which scores each resampled model on the patients it did not see. When several models are compared by cross-validation, the choice of the best model is repeated in every resample too. Neural networks and the Ensemble use at most 50 resamples, and their tuning is not repeated (too slow). There is no separate test set, so the results table shows corrected estimates; for external validity, test on an independent cohort (Option B).
If a patient can have more than one row (several visits or admissions), choose the column that identifies the patient: whole patients are then drawn into each resample (and kept together in cross-validation), so a patient is never both seen and unseen by the same model.
โฑ๏ธ With automatic tuning switched on, every resample re-tunes the model, so a run can take several minutes per model (shown with a time estimate). Start with 50 resamples to see how long it takes.
80% Train/20% Test
Split Seed (Reproducibility)
Choose Default (42) or input any custom seed.
If a patient has more than one row, a random split can put the same patient in both sets, which makes the test too easy; keep each patient's records together. Splitting by date tests the model on the most recent patients, as it would be used in practice. Cross-validation folds also keep each patient's records together.
After calculating test accuracy, retrain the model with 100% of the training data?
Dataset (i) • Training Cohort100% Training
Loading training cohort details...
๐ก Model parameters will be fitted strictly on 100% of this training dataset.
Dataset (ii) • Testing CohortPending Upload
๐
Click or drag separate Testing CSV here
Must include feature predictors and target outcome
Quick Sample Test:
Random Seed (Reproducibility)
Choose Default (42) or input any custom seed.
Random Seed (Reproducibility)
Choose Default (42) or input any custom seed.
Random Seed (Reproducibility)
Choose Default (42) or input any custom seed.
Random Seed (Reproducibility)
Choose Default (42) or input any custom seed.
Random Seed (Reproducibility)
Choose Default (42) or input any custom seed.
Random Seed (Reproducibility)
Choose Default (42) or input any custom seed.
Master Seed (Reproducibility)
Choose Default (42) or input any custom seed.
Constituent Base Models to Include
๐ When several models are trained, choose the best one by:
With cross-validation, each model is scored on parts of the Training set it did not learn from (missing-value filling and scaling are redone inside each part), and the best model is picked on those scores. The Testing set is then used only once, as an honest final check. Picking the winner on the Testing set is quicker, but the winner's test score is then too optimistic, because it won on those same patients.
A patient is classed as the positive outcome when its predicted probability is at or above this value. 0.5 is the usual default; use a lower value if missing a case is worse than a false alarm. Decide it on clinical grounds before looking at the results; do not adjust it to improve the Testing-set score.
Adjusts the predicted percentages so they better match observed risks, using cross-validation predictions from the Training set only (the Testing set is never used). The calibration panel then shows the results before and after. It does not change how well the model ranks patients (AUC) for Platt scaling. With bootstrap validation (Option C) the recalibration is refitted inside every resample, so the optimism-corrected results include it.
The app tries several combinations of each model's main settings (e.g. k for k-NN, tree depth for Random Forest, the ridge penalty for Logistic Regression, dropout and weight decay for the Neural Network) and keeps the one that scores best on the ranking metric. Each combination is judged by cross-validation inside the Training set: the Training set is split into 5 (or 3) parts and each part takes a turn as a mini-test while the model learns from the rest. The Testing set is never used for tuning, so its final score stays a fair check. Your current settings are always one of the candidates, so they are only changed if another combination does better; the chosen settings are then shown in each model's settings panel. Missing-value filling, encoding and scaling are redone inside each part, so the mini-tests never influence the preparation. Tuning takes several times longer than normal training (neural networks and the Ensemble use at most 3 folds; training sets over 2,000 cases are tuned on a stratified sample). The Ensemble is not tuned.
ACTIVE • COMPUTING
โฑ๏ธ 00:00.0s
๐ก๏ธLoop Guard: Normal
Training Machine Learning Models...
Stage 1 of 1
Thread Status: Responsive •
Heartbeat: < 0.1s ago •
System operating smoothly
Model Validation & Accuracy Metrics
๐ฎ Single Patient Case Predictor
Input patient parameters to obtain real-time inference and class probability distributions from your trained clinical model.
โ ๏ธ Research and education only. These predictions have not been validated for decisions about an individual patient's care. Software used to guide individual care may be regulated as a medical device (e.g. UK MDR / MHRA Software as a Medical Device).
๐ Batch Prediction & Export Facility
Upload a .csv file containing multiple records to compute predictions across all rows simultaneously. If the file also contains the outcome column, the model is validated on those patients as well (discrimination, calibration, clinical usefulness and subgroups): use this to test a model on a separate cohort, for example a model received from another centre via "Load trained model".
โ ๏ธ Research and education only. These predictions have not been validated for decisions about an individual patient's care. Software used to guide individual care may be regulated as a medical device (e.g. UK MDR / MHRA Software as a Medical Device).
๐
Upload Batch .csv File
File should contain the required predictor variables. Missing values will be imputed automatically.
Batch Prediction Preview
๐ฌStrictly Ordered 7-Step Clinical ML Pipeline
Clinical ML protocol with training-only preprocessing: stratified train/test split (default 80/20; rows with a missing outcome excluded), imputation fitted on the training split only, skewness screen & correlation review (Pearson vs Spearman), VIF multicollinearity review, univariate baselines, SMOTENC balancing of the training split, Random Forest feature scout, and algorithm-constrained final evaluation.
Step 1: Train/Test Split & Strict Imputation
Rows with a missing outcome are excluded (outcomes are never imputed). The remaining rows are split into Training and Testing sets at the selected ratio (default 80/20; stratified by outcome class). Missing predictor values are filled in using values (e.g. medians) calculated from the Training set only. The same values are used to fill gaps in both the Training and Testing sets, so the Testing set does not influence how missing data are handled.
Use "keep each patient's records together" if a patient can have several rows.
Categorical variables strictly imputed via Training Mode. With multiple imputation, MICE is fitted on the training split only (without the outcome); Steps 2โ6 screen on the first completed dataset, Step 7 trains every model once per completed dataset (each balanced by SMOTENC when Step 5 applies it) and pools their predictions, and the cross-validation folds repeat MICE. MICE assumes values are missing at random: consider why values are missing in your dataset.
-
Training Records (80%)
-
Testing Records (20%)
-
Missing Values Imputed
๐ก๏ธ Training-Set Imputer Parameters (Fitted on Train Only)
โ Step 1 Complete: Train & Test sets prepared; imputation fitted on the Training set only.
๐
Step 2: Continuous Variable Correlation Check (Pearson vs. Spearman)
Continuous and ordinal variables in the Training set are screened for skewness (bias-adjusted FisherโPearson coefficient, Gโ = โ(n(nโ1))/(nโ2)ยทgโ, as in SciPy skew(bias=False)) using the rule of thumb |Gโ| โค 1 (approximately symmetric). This is not a formal normality test. Pearson (r) is calculated when both variables pass the screen; Spearman (ฯ) is calculated if one or both are skewed. High-collinearity pairs (|r| or |ฯ| ≥ 0.8) are presented below to allow dropping one or keeping both.
๐ Training Variables Skewness Screen (|Gโ| โค 1 rule of thumb)
Select which redundant variable to drop from both Train and Test sets, or choose to keep both.
0 High Pairs
Click "Analyze Correlations" below to evaluate continuous pairs.
๐
Step 3: Variance Inflation Factor (VIF) Check
Categorical variables are one-hot encoded (dropping reference category to eliminate dummy trap) and continuous variables standardized. VIF is computed for all surviving features; multi-level categorical features use the Generalised VIF (Fox & Monette), which captures the joint collinearity of all their dummy columns and is shown on the VIF scale as GVIF1/df. Features with VIF > 5 indicate severe multicollinearity and can be permanently eliminated from both Train and Test sets.
Features Multicollinearity Table (VIF & Rยฒ)
VIF > 5 indicates high multicollinearity ($R^2 > 0.80$). Check variables to drop and click 'Drop Selected Features'.
๐งช
Step 4: Univariate Statistical Testing Check
Informational baseline testing of surviving original variables against the Target: One-Way ANOVA (or t-test) for continuous features and Pearson Chi-Square (ฯยฒ) for categorical features. Variables are sorted from lowest p-value to highest. Variables are NOT automatically dropped at this step.
๐ Univariate Statistical Screening Baseline (Sorted by p-value Ascending)
Select which predictor variables to include or exclude based on statistical significance or clinical judgment before balancing & model training.
โน๏ธ You can exclude non-significant predictors or keep all variables for multivariate training.
โ๏ธ
Step 5: Imbalance Handling (SMOTENC)
Counts how many Training-set patients have each outcome. If the rarer outcome makes up less than 30% of the Training set (or, for outcomes with more than two groups, the smallest group is less than about 43% the size of the largest), SMOTENC creates synthetic (made-up but realistic) patients for that outcome, each blended from similar real patients, until the outcome groups are equal in size. Measurements such as age are blended to in-between values; categories such as sex take the most common value among the similar patients. The Testing set is never changed: it contains only real patients, so the results reflect real-world performance.
Evaluating Training set class balance...
๐ The Testing set is never resampled: it keeps the true outcome prevalence. (Its missing predictor values were filled in Step 1 using Training-set values only.)
๐ฒ
Step 6: Model-Driven Feature Ranking (Random Forest Scout)
Ranks the predictors by how useful they are. A quick "scout" Random Forest is trained on the balanced Training set from Step 5 (it is used only for this ranking, not as one of the final models). Each predictor is scored by how much it helps the trees separate the outcome groups (Mean Decrease in Impurity). The weakest 30% of predictors are then left out for k-Nearest Neighbours and Naive Bayes in Step 7, because weak predictors add noise that easily misleads these two models. The other models use all remaining predictors. The ranking uses the Training set only, and it is a practical filter rather than a definitive clinical ranking: it tends to favour continuous measurements over simple yes/no predictors.
Click 'Run Random Forest Scout' above to compute feature rankings.
๐ก k-NN & Naive Bayes will train only on the Top 70% features, plus any you reinstate.
๐ฏ
Step 7: Algorithm-Specific Training & Constraints
Applies strict stability constraints to each algorithm:
k-NN & Naive Bayes: Use only the top 70% of features by Step 6 RF importance (fewer noisy inputs for distance- and likelihood-based models).
Random Forest: All surviving features (tree splits are scale-free and the forest selects features per split).
Gradient-Boosted Trees: All surviving features; shallow trees, shrinkage, row subsampling and early stopping on an internal validation split of the training rows.
Neural Network (MLP): L2 weight decay + dropout, with early stopping on an internal validation split of the training rows (the test set is never used in training).
Logistic / Ridge Regression: Applies L2 penalization to stabilize any remaining minor collinearity.
Voting Ensemble: Equal-weight soft vote of its base models; scaling and one-hot encoding fitted on the Training set only (as for every model).
All models are evaluated on the held-out Testing set (never resampled) and ranked by the selected primary metric (default: macro F1-Score; regression: Rยฒ). By default the ranking uses cross-validation inside the Training set, so the top model's test score is an honest estimate; if you choose to rank on the Testing set instead, the top score is optimistically biased. Either way, confirm the chosen model on an independent cohort.
๐ Choose the best model by:
With cross-validation, each of the models is scored on parts of the real Training patients it did not learn from (SMOTENC and scaling are redone inside each part) and the best is picked on those scores; the Testing set is then used only once, as an honest final check. Picking the winner on the Testing set is quicker, but its test score is then too optimistic.
Probability of the positive outcome at or above which a patient is classed as positive (default 0.5). Choose it on clinical grounds before seeing the results; never tune it on the Testing set.
Adjusts the predicted percentages so they better match observed risks, using cross-validation predictions from the Training set only (the Testing set is never used). The calibration panel then shows the results before and after. It does not change how well the model ranks patients (AUC) for Platt scaling.
By default the pipeline uses fixed, prespecified settings (e.g. k = 5, tree depth 6, ridge ฮป = 0.02), which keeps it a standard, easily reported protocol. If ticked, each model's main settings are chosen by cross-validation inside the Training set: the real training patients are split into 5 (or 3) parts, each taking a turn as a mini-test. SMOTENC balancing and scaling are redone inside each part, so no synthetic patient is scored against the real patient it was made from, and the Testing set is never used for tuning. The protocol defaults are always a candidate and are kept unless another combination does better. Tuning mainly helps with larger cohorts (roughly 200+ patients); with fewer than 100 training patients the results are mostly chance and a warning is shown. It takes several times longer; the Ensemble is not tuned.
ACTIVE • COMPUTING
โฑ๏ธ 00:00.0s
๐ก๏ธLoop Guard: Normal (0 cycles)
Training algorithm-constrained clinical models...
Step 1 of 5
Thread Status: Responsive •
Heartbeat: < 0.1s ago •
System operating smoothly
๐ Clinical Models Performance Benchmark (Evaluated Strictly on Unaltered Test Set)
๐ฏ 2ร2 Diagnostic Concordance & Confusion Matrices (Unaltered Test Set)
๐
Use a Pipeline Model for Research Predictions
The top-ranking model can be used for research predictions in Steps 5 and 6.
โ๏ธ Empirical Performance Comparison: Pre-existing Baseline vs 7-Step Clinical Pipeline