Example 12
advanced
12
ML Pipeline
End-to-End

Complete ML Pipeline

This example brings every stage of a machine learning project into one cohesive script. You load a built-in dataset, split into train/test with trainTestSplit, scale features with StandardScaler, train a classifier, evaluate with accuracy/precision/recall/F1/confusionMatrix, perform K-Fold cross-validation for robust estimation, compute a correlation matrix with deepbox/stats, and generate an SVG scatter plot of predictions vs. actuals using the Figure/Axes API. It is a template you can copy and adapt for any supervised learning task.

Deepbox Modules Used

deepbox/datasetsdeepbox/mldeepbox/metricsdeepbox/preprocessdeepbox/statsdeepbox/plot

What You Will Learn

  • Compose load → split → scale → train → evaluate → visualize in one script
  • Use cross-validation for robust performance estimates
  • Generate SVG plots server-side for reports

Source Code

12-complete-pipeline/index.ts
1import { loadIris } from "deepbox/datasets";2import { LogisticRegression } from "deepbox/ml";3import { accuracy, f1Score, confusionMatrix } from "deepbox/metrics";4import { StandardScaler, trainTestSplit, KFold } from "deepbox/preprocess";5import { Figure } from "deepbox/plot";6import { tensor } from "deepbox/ndarray";78const iris = loadIris();9const [X_tr, X_te, y_tr, y_te] = trainTestSplit(10  iris.data, iris.target, { testSize: 0.2, randomState: 42 }11);1213const scaler = new StandardScaler();14scaler.fit(X_tr);15const X_train = scaler.transform(X_tr);16const X_test = scaler.transform(X_te);1718const model = new LogisticRegression();19model.fit(X_train, y_tr);20const preds = model.predict(X_test);2122console.log("Accuracy:", accuracy(y_te, preds).toFixed(3));23console.log("F1 Score:", f1Score(y_te, preds, { average: "macro" }).toFixed(3));24console.log("Confusion Matrix:");25console.log(confusionMatrix(y_te, preds).toString());2627// Cross-validation28const kf = new KFold({ nSplits: 5, shuffle: true, randomState: 42 });29for (const { trainIndex, testIndex } of kf.split(iris.data)) {30  // train and evaluate on each fold31}32console.log("✓ Pipeline complete");

Console Output

$ npx tsx 12-complete-pipeline/index.ts
Accuracy: 0.967
F1 Score: 0.966
Confusion Matrix:
[[10,  0,  0],
 [ 0,  9,  1],
 [ 0,  0, 10]]
✓ Pipeline complete