Example 17
intermediate
17
Tensors
Preprocessing

Preprocessing — Encoders

Transform categorical and label data into numeric representations using Deepbox's encoding utilities. This example uses deepbox/ndarray, deepbox/preprocess and focuses on tensor, reshape; LabelEncoder, OneHotEncoder, OrdinalEncoder, LabelBinarizer, MultiLabelBinarizer.

Deepbox Modules Used

deepbox/ndarraydeepbox/preprocess

What You Will Learn

  • Use deepbox/ndarray for tensor, reshape.
  • Use deepbox/preprocess for LabelEncoder, OneHotEncoder, OrdinalEncoder, LabelBinarizer, MultiLabelBinarizer.
  • Transform categorical and label data into numeric representations using Deepbox's encoding utilities.

Source Files

index.ts
1/**2 * Example 17: Preprocessing  Encoders3 *4 * Transform categorical and label data into numeric representations5 * using Deepbox's encoding utilities.6 */78import { reshape, tensor } from "deepbox/ndarray";9import {10  LabelBinarizer,11  LabelEncoder,12  MultiLabelBinarizer,13  OneHotEncoder,14  OrdinalEncoder,15} from "deepbox/preprocess";1617console.log("=== Preprocessing: Encoders ===\n");1819// ---------------------------------------------------------------------------20// Part 1: LabelEncoder — map string labels to integers21// ---------------------------------------------------------------------------22console.log("--- Part 1: LabelEncoder ---");2324const le = new LabelEncoder();25le.fit(tensor(["cat", "dog", "bird", "cat", "bird"]));2627const encoded = le.transform(tensor(["bird", "cat", "dog"]));28console.log("Encoded:", encoded.toString());2930const decoded = le.inverseTransform(encoded);31console.log("Decoded:", decoded.toString());3233// ---------------------------------------------------------------------------34// Part 2: OneHotEncoder — one-hot vectors for categorical features35// ---------------------------------------------------------------------------36console.log("\n--- Part 2: OneHotEncoder ---");3738const ohe = new OneHotEncoder();39ohe.fit(reshape(tensor(["red", "green", "blue", "red", "blue"]), [5, 1]));4041const oneHot = ohe.transform(reshape(tensor(["red", "blue", "green"]), [3, 1]));42console.log("One-hot encoded shape:", oneHot.shape);43console.log("One-hot encoded:\n", oneHot.toString());4445// ---------------------------------------------------------------------------46// Part 3: OrdinalEncoder — ordinal integer encoding47// ---------------------------------------------------------------------------48console.log("\n--- Part 3: OrdinalEncoder ---");4950const oe = new OrdinalEncoder();51oe.fit(reshape(tensor(["low", "medium", "high", "medium", "low"]), [5, 1]));5253const ordinal = oe.transform(reshape(tensor(["low", "high", "medium"]), [3, 1]));54console.log("Ordinal encoded:", ordinal.toString());5556const ordinalDecoded = oe.inverseTransform(ordinal);57console.log("Decoded:", ordinalDecoded.toString());5859// ---------------------------------------------------------------------------60// Part 4: LabelBinarizer — binary indicator for multi-class labels61// ---------------------------------------------------------------------------62console.log("\n--- Part 4: LabelBinarizer ---");6364const lb = new LabelBinarizer();65lb.fit(tensor(["cat", "dog", "bird"]));6667const binarized = lb.transform(tensor(["cat", "bird", "dog"]));68console.log("Binarized shape:", binarized.shape);69console.log("Binarized:\n", binarized.toString());7071const binarizedDecoded = lb.inverseTransform(binarized);72console.log("Decoded:", binarizedDecoded.toString());7374// ---------------------------------------------------------------------------75// Part 5: MultiLabelBinarizer — multi-label binary encoding76// ---------------------------------------------------------------------------77console.log("\n--- Part 5: MultiLabelBinarizer ---");7879const mlb = new MultiLabelBinarizer();80mlb.fit([["cat", "dog"], ["bird"], ["cat", "bird", "dog"]]);8182const multiEncoded = mlb.transform([["cat", "bird"], ["dog"]]);83console.log("Multi-label encoded shape:", multiEncoded.shape);84console.log("Multi-label encoded:\n", multiEncoded.toString());8586console.log("\n=== Preprocessing: Encoders Complete ===");87

Console Output

$ npx tsx 17-preprocessing-encoders/index.ts
Console output demonstrating 5 encoding strategies with encode/decode round-trips