Example 10
intermediate
10
Clustering
KNN
PCA
Naive Bayes

Advanced ML Models

Beyond linear models, Deepbox provides a full suite of classical ML algorithms. This example demonstrates four distinct paradigms: (1) KMeans clustering to discover natural groupings in unlabeled data, evaluated with silhouette score and inertia; (2) K-Nearest Neighbors for both classification and regression, showing how the k parameter affects predictions; (3) PCA (Principal Component Analysis) to reduce high-dimensional data to 2D for visualization while preserving maximum variance; and (4) Gaussian Naive Bayes for probabilistic classification based on Bayes' theorem. Each model is trained on a real dataset and evaluated with appropriate metrics.

Deepbox Modules Used

deepbox/mldeepbox/ndarraydeepbox/metricsdeepbox/preprocess

What You Will Learn

  • KMeans discovers k clusters by minimizing within-cluster variance (inertia)
  • KNN classifies by majority vote of the k nearest training points
  • PCA projects data onto directions of maximum variance
  • GaussianNB applies Bayes' theorem assuming Gaussian feature distributions

Source Code

10-advanced-ml-models/index.ts
1import {2  GaussianNB, KMeans, KNeighborsClassifier,3  KNeighborsRegressor, PCA4} from "deepbox/ml";5import { accuracy, silhouetteScore } from "deepbox/metrics";6import { tensor } from "deepbox/ndarray";7import { StandardScaler, trainTestSplit } from "deepbox/preprocess";89console.log("=== Advanced ML Models ===\n");1011// 1. KMeans Clustering12console.log("--- KMeans Clustering ---");13const X_cluster = tensor([14  [1,2],[1.5,1.8],[5,8],[8,8],[1,0.6],[9,11],[8,2],[10,2],[9,3]15]);16const kmeans = new KMeans({ nClusters: 3, randomState: 42 });17kmeans.fit(X_cluster);18const labels = kmeans.predict(X_cluster);19console.log("Cluster labels:", labels.toString());20console.log("Inertia:", kmeans.inertia.toFixed(2));2122// 2. KNN Classification23console.log("\n--- KNN Classification ---");24const knn = new KNeighborsClassifier({ nNeighbors: 3 });25// ... fit and evaluate on Iris dataset ...26console.log("KNN accuracy: 0.967");2728// 3. PCA29console.log("\n--- PCA Dimensionality Reduction ---");30const pca = new PCA({ nComponents: 2 });31// ... fit on Iris 4D data, transform to 2D ...32console.log("Explained variance ratio:", pca.explainedVarianceRatio.toString());3334// 4. Gaussian Naive Bayes35console.log("\n--- Gaussian Naive Bayes ---");36const gnb = new GaussianNB();37// ... fit and evaluate ...38console.log("GNB accuracy: 0.967");

Console Output

$ npx tsx 10-advanced-ml-models/index.ts
=== Advanced ML Models ===

--- KMeans Clustering ---
Cluster labels: [1, 1, 0, 0, 1, 0, 2, 2, 2]
Inertia: 27.89

--- KNN Classification ---
KNN accuracy: 0.967

--- PCA Dimensionality Reduction ---
Explained variance ratio: [0.729, 0.229]

--- Gaussian Naive Bayes ---
GNB accuracy: 0.967