07
ML
Tensors
Metrics
Preprocessing
Linear Regression
Build a simple linear regression model to predict continuous values. Learn the basics of supervised learning with Deepbox. This example uses deepbox/ml, deepbox/ndarray, deepbox/metrics, deepbox/preprocess and focuses on LinearRegression; tensor; r2Score, mse, mae; trainTestSplit.
Deepbox Modules Used
deepbox/mldeepbox/ndarraydeepbox/metricsdeepbox/preprocessWhat You Will Learn
- Use deepbox/ml for LinearRegression.
- Use deepbox/ndarray for tensor.
- Use deepbox/metrics for r2Score, mse, mae.
- Use deepbox/preprocess for trainTestSplit.
- Build a simple linear regression model to predict continuous values. Learn the basics of supervised learning with Deepbox.
Source Files
index.ts
1/**2 * Example 07: Linear Regression3 *4 * Build a simple linear regression model to predict continuous values.5 * Learn the basics of supervised learning with Deepbox.6 */78import { mae, mse, r2Score } from "deepbox/metrics";9import { LinearRegression } from "deepbox/ml";10import { tensor } from "deepbox/ndarray";11import { trainTestSplit } from "deepbox/preprocess";1213console.log("=== Linear Regression ===\n");1415// Generate synthetic data for demonstration16// True relationship: y = 2x + 3 + noise17const X_data: number[][] = [];18const y_data: number[] = [];1920for (let i = 0; i < 100; i++) {21 const x = i / 10;22 // Add random noise to make it realistic23 const y = 2 * x + 3 + (Math.random() - 0.5) * 2;24 X_data.push([x]);25 y_data.push(y);26}2728// Convert to tensors29const X = tensor(X_data);30const y = tensor(y_data);3132console.log(`Dataset: ${X.shape[0]} samples, ${X.shape[1]} features\n`);3334// Split data: 80% training, 20% testing35const [X_train, X_test, y_train, y_test] = trainTestSplit(X, y, {36 testSize: 0.2,37 randomState: 42,38});3940console.log(`Training set: ${X_train.shape[0]} samples`);41console.log(`Test set: ${X_test.shape[0]} samples\n`);4243// Create and train the linear regression model44const model = new LinearRegression();45model.fit(X_train, y_train);4647console.log("Model trained!");48console.log(`Coefficients: ${model.coef?.toString()}`);49console.log(`Intercept: ${model.intercept}\n`);5051// Generate predictions on test set52const y_pred = model.predict(X_test);5354// Calculate performance metrics55const r2 = r2Score(y_test, y_pred);56const mseValue = mse(y_test, y_pred);57const maeValue = mae(y_test, y_pred);5859console.log("Model Performance:");60console.log(`R² Score: ${r2.toFixed(4)}`);61console.log(`MSE: ${mseValue.toFixed(4)}`);62console.log(`MAE: ${maeValue.toFixed(4)}`);6364console.log("\n✓ Linear regression complete!");65Console Output
$ npx tsx 07-linear-regression/index.ts
Console output showing model coefficients, intercept, and performance metrics (R², MSE, MAE)