Skip to main content

MLP Tabular (GPU)

Neural network for complex tabular patterns


Overview​

  • Model ID: mlp-tabular-gpu
  • Framework: scikit-learn (MLPRegressor, multi-layer perceptron)
  • Category: deep_learning
  • Hardware: scheduled on a GPU node (asks for 4 GB of VRAM), although scikit-learn trains it on the CPU
  • Best for: Datasets with complex non-linear relationships
  • Multi-output: Yes (native multi-output, accepts 2D targets)
  • Specialist type: tabular

A fully-connected neural network for tabular regression. Use it when tree models plateau on complex, non-linear feature interactions. Pass mlp-tabular-gpu as the model= argument.


When to Use​

✅ Perfect for:

  • Complex non-linear relationships
  • High-dimensional data
  • When gradient boosting plateaus
  • Multi-output regression (predict multiple targets at once)

❌ Not ideal for:

  • Small datasets — use XGBoost / Random Forest
  • When interpretability is required — use tree models
  • Very high-cardinality categoricals — use TabNet

Quick Start​

Single-output​

from colabhive import ColabHive

client = ColabHive(api_key="...", account_id="...")

dataset = client.datasets.upload(name="large_data", file="./train.csv")

job = client.training.create(
model="mlp-tabular-gpu",
dataset_id=dataset.id,
hyperparameters={
"epochs": 30,
"batch_size": 128,
"learning_rate": 0.001,
"hidden_dims": [256, 128, 64],
"target_column": "label",
},
)
job.wait()
print(job.get_metrics())

Multi-output​

job = client.training.create(
model="mlp-tabular-gpu",
dataset_id=dataset.id,
hyperparameters={
"epochs": 30,
"hidden_dims": [256, 128, 64],
"target_columns": ["price", "demand", "score"],
},
)
Multi-output

The MLP supports native multi-output regression — it accepts 2D target arrays directly, so a single network predicts all targets at once (often more efficient than separate models).


Hyperparameters​

ParameterDefaultDescription
epochs50Training epochs
batch_size64Samples per batch
learning_rate0.001Adam learning rate
hidden_dims[128, 64, 32]Network architecture (hidden layer sizes)
target_column—Single target column (promoted to target_columns)
target_columns—Multiple target columns (multi-output)

Architecture​

Input (N features)
↓
[Dense 128 + ReLU]
↓
[Dense 64 + ReLU]
↓
[Dense 32 + ReLU]
↓
Output (1 value or K targets for multi-output)

Layer sizes follow hidden_dims (default [128, 64, 32]).


Tips​

  1. Preprocessing crucial: scale features, encode categoricals.
  2. Regularize through size: the template has no dropout or batch-norm settings; use smaller hidden_dims or fewer epochs to curb overfitting.
  3. Early stopping: monitor validation loss and stop when it plateaus.
  4. Architecture: start simple (2-3 layers) and expand if needed.
  5. Multi-output: use target_columns for related targets — shared layers learn better representations.

Next Steps​