Skip to content

Choosing an estimator

Start from the model you would use anyway, then look up its aspective variants. Every variant here was shown on public benchmarks to be at least as good as the vanilla model (see Benchmarks); the Verdict column says whether it was also significantly better.

Classification

If you would use Try When it helps Verdict
LDA or QDA RegularizedDiscriminantAnalysis Few samples per class relative to the number of features; tune lam and gamma between LDA, QDA and a ridge-like identity non-inferior
LDA MixtureDiscriminantAnalysis Classes made of several clusters, so a single centroid per class is too coarse non-inferior
Naive Bayes AODEClassifier The default upgrade: no structure search, no tuning, and much of the bias of the independence assumption removed superior
Naive Bayes A2DEClassifier Thousands of rows or more; lower bias than AODE, at a cost that grows with the square of the number of features superior
Naive Bayes TANClassifier, KDBClassifier Correlated features and one readable dependency structure rather than an average of many; KDB's k sets how many parents each feature may have and needs more data superior
Naive Bayes HiddenNaiveBayesClassifier Correlated features and one model with AODE's table sizes; each feature's hidden parent weights the others by conditional mutual information superior
Gaussian naive Bayes FlexibleNaiveBayes Continuous features that are skewed or multimodal, which a single Gaussian per class fits badly superior
k-NN DANNClassifier Irrelevant or noisy directions near the class boundary that a round neighbourhood wastes neighbours on non-inferior
Random forest RotationForestClassifier Continuous features with informative linear combinations, where axis-parallel splits need many cuts non-inferior
AdaBoost LogitBoostClassifier Noisy labels, or when you need class probabilities; AdaBoost's exponential loss overreacts to misclassified points non-inferior
AdaBoost MultiBoostClassifier AdaBoost's variance is the problem; MultiBoost adds wagging to cut it while keeping boosting's bias reduction non-inferior
Logistic regression FirthLogisticRegression Small samples, rare events or complete separation, where maximum likelihood is biased or diverges non-inferior
Logistic regression CauchyLogisticRegression A default weakly informative prior that keeps coefficients finite under separation and stabilizes small samples superior

Regression

If you would use Try When it helps Verdict
Lasso RelaxedLasso, RelaxedLassoCV You need a sparse model whose selected coefficients are not over-shrunk non-inferior
Lasso AdaptiveLasso, AdaptiveLassoCV Consistent variable selection with less shrinkage of large effects (the oracle property) non-inferior
Lasso NonconvexPenaltyRegression, NonconvexPenaltyRegressionCV MCP or SCAD: nearly unbiased estimates of large coefficients and fewer noise variables non-inferior
Lasso Bolasso Variable selection that holds up under correlated features, by keeping only variables chosen on every bootstrap replicate non-inferior
Lasso L2BoostRegressor Smoother coefficient paths than the lasso when features are strongly correlated non-inferior
Linear regression or CART MARSRegressor Nonlinear effects and interactions, with a model you can still read term by term superior
Linear regression PSplineGAMRegressor Smooth nonlinear effects, one readable curve per feature non-inferior
CART M5ModelTreeRegressor Piecewise-linear trends that a constant-leaf tree approximates by a staircase superior
k-NN regression LoessRegressor Smooth signals, especially near the edges of the data where neighbour averages are biased superior
Random forest LocalLinearForestRegressor Smooth signals and extrapolation toward the edges of the data, where averaging forests are biased non-inferior

Anomaly detection

If you would use Try When it helps Verdict
Isolation Forest ExtendedIsolationForestDetector Clusters that are not axis-aligned, where axis-parallel cuts leave "ghost" regions of low scores non-inferior
Isolation Forest or the k-NN detector LeSiNNDetector Large data or clustered outliers that mask each other; tiny random subsamples make it fast and robust non-inferior
Isolation Forest or subspace detectors RSHashDetector Outliers that show up only in some feature subsets; linear time with randomized subspace grids non-inferior