Example 22
intermediate
22
Datasets

Built-in Datasets

Explore Deepbox's 24 built-in datasets and 6 synthetic generators for quick experimentation. Perfect for learning and testing ML algorithms. This example uses deepbox/datasets and focuses on loadIris, loadDigits, loadBreastCancer, loadDiabetes, loadLinnerud, loadHousingMini, makeClassification, makeRegression, makeBlobs, makeMoons, makeCircles, and 15+ more.

Deepbox Modules Used

deepbox/datasets

What You Will Learn

  • Use deepbox/datasets for loadIris, loadDigits, loadBreastCancer, loadDiabetes, loadLinnerud, loadHousingMini, makeClassification, makeRegression, makeBlobs, makeMoons, makeCircles, and 15+ more.
  • Explore Deepbox's 24 built-in datasets and 6 synthetic generators for quick experimentation. Perfect for learning and testing ML algorithms.

Source Files

index.ts
1/**2 * Example 22: Built-in Datasets3 *4 * Explore Deepbox's built-in datasets for quick experimentation.5 * Perfect for learning and testing ML algorithms.6 */78import {9  loadBreastCancer,10  loadConcentricRings,11  loadCropYield,12  loadCustomerSegments,13  loadDiabetes,14  loadDigits,15  loadEnergyEfficiency,16  loadFitnessScores,17  loadFlowersExtended,18  loadFruitQuality,19  loadGaussianIslands,20  loadHousingMini,21  loadIris,22  loadLeafShapes,23  loadLinnerud,24  loadMoonsMulti,25  loadPerfectlySeparable,26  loadPlantGrowth,27  loadSeedMorphology,28  loadSensorStates,29  loadSpiralArms,30  loadStudentPerformance,31  loadTrafficConditions,32  loadWeatherOutcomes,33  makeBlobs,34  makeCircles,35  makeClassification,36  makeGaussianQuantiles,37  makeMoons,38  makeRegression,39} from "deepbox/datasets";4041console.log("=== Built-in Datasets ===\n");4243// ─── Classic Reference Datasets ─────────────────────────────────────────────4445console.log("--- Classic Reference Datasets ---\n");4647console.log("1. Iris Dataset:");48console.log("-".repeat(50));49const iris = loadIris();50console.log(`Samples: ${iris.data.shape[0]}`);51console.log(`Features: ${iris.data.shape[1]}`);52console.log(`Classes: ${iris.targetNames?.join(", ") || "N/A"}`);53console.log(`Features: ${iris.featureNames?.join(", ") || "N/A"}\n`);5455console.log("2. Digits Dataset:");56console.log("-".repeat(50));57const digits = loadDigits();58console.log(`Samples: ${digits.data.shape[0]}`);59console.log(`Features: ${digits.data.shape[1]} (8x8 images flattened)`);60console.log(`Classes: 10 (digits 0-9)\n`);6162console.log("3. Breast Cancer Dataset:");63console.log("-".repeat(50));64const cancer = loadBreastCancer();65console.log(`Samples: ${cancer.data.shape[0]}`);66console.log(`Features: ${cancer.data.shape[1]}`);67console.log(`Classes: ${cancer.targetNames?.join(", ") || "N/A"}\n`);6869console.log("4. Diabetes Dataset (Regression):");70console.log("-".repeat(50));71const diabetes = loadDiabetes();72console.log(`Samples: ${diabetes.data.shape[0]}`);73console.log(`Features: ${diabetes.data.shape[1]}`);74console.log(`Task: Regression (predict disease progression)\n`);7576console.log("5. Linnerud Dataset (Multi-Output):");77console.log("-".repeat(50));78const linnerud = loadLinnerud();79console.log(`Samples: ${linnerud.data.shape[0]}`);80console.log(`Features: ${linnerud.data.shape[1]}`);81console.log(`Targets: ${linnerud.target.shape[1]} (multi-output regression)\n`);8283// ─── Tabular Classification ─────────────────────────────────────────────────8485console.log("--- Tabular Classification Datasets ---\n");8687console.log("6. Flowers Extended (4-class Iris variant):");88console.log("-".repeat(50));89const flowers = loadFlowersExtended();90console.log(`Samples: ${flowers.data.shape[0]}, Features: ${flowers.data.shape[1]}`);91console.log(`Classes: ${flowers.targetNames?.join(", ") || "N/A"}\n`);9293console.log("7. Leaf Shapes (5-class morphology):");94console.log("-".repeat(50));95const leaves = loadLeafShapes();96console.log(`Samples: ${leaves.data.shape[0]}, Features: ${leaves.data.shape[1]}`);97console.log(`Classes: ${leaves.targetNames?.join(", ") || "N/A"}\n`);9899console.log("8. Fruit Quality:");100console.log("-".repeat(50));101const fruit = loadFruitQuality();102console.log(`Samples: ${fruit.data.shape[0]}, Features: ${fruit.data.shape[1]}`);103console.log(`Classes: ${fruit.targetNames?.join(", ") || "N/A"}\n`);104105console.log("9. Seed Morphology:");106console.log("-".repeat(50));107const seeds = loadSeedMorphology();108console.log(`Samples: ${seeds.data.shape[0]}, Features: ${seeds.data.shape[1]}`);109console.log(`Classes: ${seeds.targetNames?.join(", ") || "N/A"}\n`);110111// ─── Non-Linear Classification ──────────────────────────────────────────────112113console.log("--- Non-Linear Classification Datasets ---\n");114115console.log("10. Moons-Multi (3 interleaving crescents):");116console.log("-".repeat(50));117const moons = loadMoonsMulti();118console.log(`Samples: ${moons.data.shape[0]}, Features: ${moons.data.shape[1]}\n`);119120console.log("11. Concentric Rings:");121console.log("-".repeat(50));122const rings = loadConcentricRings();123console.log(`Samples: ${rings.data.shape[0]}, Features: ${rings.data.shape[1]}\n`);124125console.log("12. Spiral Arms:");126console.log("-".repeat(50));127const spirals = loadSpiralArms();128console.log(`Samples: ${spirals.data.shape[0]}, Features: ${spirals.data.shape[1]}\n`);129130console.log("13. Gaussian Islands (3D clusters):");131console.log("-".repeat(50));132const islands = loadGaussianIslands();133console.log(`Samples: ${islands.data.shape[0]}, Features: ${islands.data.shape[1]}\n`);134135// ─── Regression Datasets ────────────────────────────────────────────────────136137console.log("--- Regression Datasets ---\n");138139console.log("14. Plant Growth:");140console.log("-".repeat(50));141const plant = loadPlantGrowth();142console.log(`Samples: ${plant.data.shape[0]}, Features: ${plant.data.shape[1]}`);143console.log(`Features: ${plant.featureNames.join(", ")}\n`);144145console.log("15. Housing-Mini:");146console.log("-".repeat(50));147const housing = loadHousingMini();148console.log(`Samples: ${housing.data.shape[0]}, Features: ${housing.data.shape[1]}`);149console.log(`Features: ${housing.featureNames.join(", ")}\n`);150151console.log("16. Energy Efficiency:");152console.log("-".repeat(50));153const energy = loadEnergyEfficiency();154console.log(`Samples: ${energy.data.shape[0]}, Features: ${energy.data.shape[1]}\n`);155156console.log("17. Crop Yield:");157console.log("-".repeat(50));158const crop = loadCropYield();159console.log(`Samples: ${crop.data.shape[0]}, Features: ${crop.data.shape[1]}\n`);160161// ─── Clustering Datasets ────────────────────────────────────────────────────162163console.log("--- Clustering Datasets ---\n");164165console.log("18. Customer Segments:");166console.log("-".repeat(50));167const customers = loadCustomerSegments();168console.log(`Samples: ${customers.data.shape[0]}, Features: ${customers.data.shape[1]}`);169console.log(`Clusters: ${customers.targetNames?.join(", ") || "N/A"}\n`);170171console.log("19. Sensor States:");172console.log("-".repeat(50));173const sensors = loadSensorStates();174console.log(`Samples: ${sensors.data.shape[0]}, Features: ${sensors.data.shape[1]}`);175console.log(`Modes: ${sensors.targetNames?.join(", ") || "N/A"}\n`);176177// ─── Integer-Heavy Datasets ─────────────────────────────────────────────────178179console.log("--- Integer-Heavy Datasets ---\n");180181console.log("20. Student Performance:");182console.log("-".repeat(50));183const students = loadStudentPerformance();184console.log(`Samples: ${students.data.shape[0]}, Features: ${students.data.shape[1]}\n`);185186console.log("21. Traffic Conditions:");187console.log("-".repeat(50));188const traffic = loadTrafficConditions();189console.log(`Samples: ${traffic.data.shape[0]}, Features: ${traffic.data.shape[1]}\n`);190191// ─── Multi-Output Datasets ──────────────────────────────────────────────────192193console.log("--- Multi-Output Datasets ---\n");194195console.log("22. Fitness Scores (3 targets):");196console.log("-".repeat(50));197const fitness = loadFitnessScores();198console.log(`Samples: ${fitness.data.shape[0]}, Features: ${fitness.data.shape[1]}`);199console.log(`Targets: ${fitness.target.shape[1]} (${fitness.targetNames?.join(", ") || "N/A"})\n`);200201console.log("23. Weather Outcomes (2 targets):");202console.log("-".repeat(50));203const weather = loadWeatherOutcomes();204console.log(`Samples: ${weather.data.shape[0]}, Features: ${weather.data.shape[1]}`);205console.log(`Targets: ${weather.target.shape[1]} (${weather.targetNames?.join(", ") || "N/A"})\n`);206207// ─── Benchmark / Sanity-Check ───────────────────────────────────────────────208209console.log("--- Benchmark / Sanity-Check ---\n");210211console.log("24. Perfectly Separable:");212console.log("-".repeat(50));213const perfect = loadPerfectlySeparable();214console.log(`Samples: ${perfect.data.shape[0]}, Features: ${perfect.data.shape[1]}`);215console.log(`Classes: ${perfect.targetNames?.join(", ") || "N/A"}\n`);216217// ─── Synthetic Dataset Generators ───────────────────────────────────────────218219console.log("=== Synthetic Dataset Generators ===\n");220221console.log("25. Make Classification:");222console.log("-".repeat(50));223const classData = makeClassification({224  nSamples: 100,225  nFeatures: 4,226  nClasses: 2,227  randomState: 42,228});229const X_class = classData[0];230console.log(`Generated ${X_class.shape[0]} samples with ${X_class.shape[1]} features\n`);231232console.log("26. Make Regression:");233console.log("-".repeat(50));234const regData = makeRegression({235  nSamples: 100,236  nFeatures: 3,237  noise: 0.1,238  randomState: 42,239});240const X_reg = regData[0];241console.log(`Generated ${X_reg.shape[0]} samples with ${X_reg.shape[1]} features\n`);242243console.log("27. Make Blobs:");244console.log("-".repeat(50));245const blobsData = makeBlobs({246  nSamples: 150,247  nFeatures: 2,248  centers: 3,249  randomState: 42,250});251const X_blobs = blobsData[0];252console.log(`Generated ${X_blobs.shape[0]} samples in ${3} clusters\n`);253254console.log("28. Make Moons:");255console.log("-".repeat(50));256const moonsData = makeMoons({257  nSamples: 100,258  noise: 0.1,259  randomState: 42,260});261const X_moons = moonsData[0];262console.log(`Generated ${X_moons.shape[0]} samples (2 interleaving half circles)\n`);263264console.log("29. Make Circles:");265console.log("-".repeat(50));266const circlesData = makeCircles({267  nSamples: 100,268  noise: 0.05,269  randomState: 42,270});271const X_circles = circlesData[0];272console.log(`Generated ${X_circles.shape[0]} samples (concentric circles)\n`);273274console.log("30. Make Gaussian Quantiles:");275console.log("-".repeat(50));276const gaussData = makeGaussianQuantiles({277  nSamples: 100,278  nFeatures: 2,279  nClasses: 3,280  randomState: 42,281});282const X_gauss = gaussData[0];283console.log(`Generated ${X_gauss.shape[0]} samples in ${3} quantile-based classes\n`);284285console.log("✓ All 24 built-in datasets + 6 synthetic generators explored!");286

Console Output

$ npx tsx 22-datasets/index.ts
Console output describing all 24 built-in datasets and 6 synthetic generators with shapes and metadata