v1.3.0 — Sklearn Parity Roadmap Release
SwiftSci v1.3.0 — Sklearn Parity Roadmap Release 🚀
SwiftSci v1.3.0 achieves complete functional parity with Core Scikit-Learn patterns, introducing estimator pipelines, subset column routing, randomized hyperparameter search, outlier detection, imbalanced dataset sampling, probability calibration, and time-series feature transformers.
🌟 What's New
🔗 Estimator Pipelines & Subset Routing (SwiftML & SwiftPreprocessing)
ClassificationPipeline&RegressionPipeline: Chain zero or morePreprocessingTransformersteps directly into a final estimator for leak-free model training and evaluation.ColumnTransformer: Route specific subsets of DataFrame columns to independent preprocessing transformers and concatenate outputs seamlessly.
🌲 Outlier Detection (SwiftCluster)
IsolationForest: Random partition isolation trees for anomaly detection and score ranking.LocalOutlierFactor(LOF): kNN local reachability density ratio anomaly scoring.
⚖️ Imbalanced Learning (SwiftPreprocessing)
SMOTE: Synthetic Minority Over-sampling Technique using k-nearest neighbor interpolation.RandomUndersampler: Random majority class sub-sampling dataset balancer.
🎲 Hyperparameter Tuning & Probability Calibration (SwiftOptimize & SwiftML)
RandomizedSearchCV: Parallel randomized hyperparameter search integrated withKFoldcross-validation.CalibratedClassifier: Platt scaling logistic calibration wrapper over raw decision boundaries.
📈 Class Probabilities & Extended Metrics (SwiftML & SwiftOptimize)
ClassifierEstimator.predictProbability: Standardized 2D class probability outputs acrossDecisionTreeClassifier,RandomForestClassifier, andLogisticRegression.- Extended Metrics:
balancedAccuracy,matthewsCorrelationCoefficient(MCC),cohenKappa,logLoss,brierScore,rocCurve,rocAUC, andprCurve.
⏱️ Feature Engineering, Selection & NLP (SwiftPreprocessing, SwiftForecast & SwiftNLP)
VarianceThreshold&SelectKBest: Feature variance filtering and top K feature ranking.InteractionFeatures&DateFeatures: Pairwise feature product terms and date component extractions.LagTransformer&RollingWindow: Lagged feature matrix builder and sliding window statistics.CountVectorizer: Document term frequency count matrix generator.DatasetUtilities: Synthetic dataset generators (makeClassification,makeRegression,makeMoons).
📊 Benchmark Performance Summary (v1.3.0 vs Python)
| Benchmark Test | Swift (ms) | Python (ms) | Speedup | Winner |
|---|---|---|---|---|
| ARIMA(1,1,1) Fit (50k pts) | 2.280 ms | 215.527 ms | 94.53x | 🟢 Swift |
| Holt-Winters Fit (50k pts, period=12) | 6.811 ms | 148.627 ms | 21.82x | 🟢 Swift |
| KernelSHAP Explain (5 feats, 100 coalitions) | 0.075 ms | 0.426 ms | 5.68x | 🟢 Swift |
| Random Forest Fit (1k×4, 50 trees) | 4.516 ms | 25.475 ms | 5.64x | 🟢 Swift |
| Mean (vDSP, 1M elements) | 0.081 ms | 0.121 ms | 1.49x | 🟢 Swift |
| Pearson Correlation (500k elements) | 0.856 ms | 1.256 ms | 1.47x | 🟢 Swift |
| Isolation Forest Fit (1k×10, 100 trees) | 14.048 ms | 16.510 ms | 1.18x | 🟢 Swift |
| StdDev (vDSP, 1M elements) | 0.477 ms | 0.539 ms | 1.13x | 🟢 Swift |
| Variance (vDSP, 1M elements) | 0.501 ms | 0.520 ms | 1.04x | 🟢 Swift |
📦 Installation
Add SwiftSci to your Package.swift:
dependencies: [
.package(url: "https://github.com/Nodibell/SwiftSci.git", from: "1.3.0")
]Full Changelog: v1.2.0...v1.3.0