Skip to content

v1.3.0 — Sklearn Parity Roadmap Release

Choose a tag to compare

@Nodibell Nodibell released this 22 Jul 14:01

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 more PreprocessingTransformer steps 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 with KFold cross-validation.
  • CalibratedClassifier: Platt scaling logistic calibration wrapper over raw decision boundaries.

📈 Class Probabilities & Extended Metrics (SwiftML & SwiftOptimize)

  • ClassifierEstimator.predictProbability: Standardized 2D class probability outputs across DecisionTreeClassifier, RandomForestClassifier, and LogisticRegression.
  • Extended Metrics: balancedAccuracy, matthewsCorrelationCoefficient (MCC), cohenKappa, logLoss, brierScore, rocCurve, rocAUC, and prCurve.

⏱️ 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