Model Card for Model ID

Binary classifier trained with AutoGluon Tabular on CAD geometric feature data from sunkaiwen/sketch2stl-parts-tabular to predict whether a CAD part is extrudable. The model is trained on original part geometries combined with filtered single-parent synthetic variants. We report metrics on the held-out test partition (df_test) and validation partition (df_val). Artifacts include (1) a cloudpickled predictor and (2) a zipped native AutoGluon predictor directory for robust reuse.

Model Details

Model Description

  • Developed by: Omar Khan
  • Shared by: Omar Khan
  • Model type: AutoML (AutoGluon Tabular ensemble; model family chosen via search)
  • Task: Tabular binary classification
  • Target column: extrudable (1 = extrudable, 0 = not_extrudable)
  • License: MIT
  • Framework: autogluon.tabular
  • Repo artifacts:
    • autogluon_predictor.pkl (cloudpickled predictor)
    • autogluon_predictor_dir.zip (zipped native predictor directory)

Uses

Direct Use

  • Baseline experiments for feature engineering and evaluation
  • Comparing in-split (synthetic) vs external (original) performance

Out-of-Scope Use

  • Production deployment or decision-making with real human subjects

Bias, Risks, and Limitations

  • Synthetic data bias: Training primarily on augmented data may inflate in-split scores.
  • Small/Skewed cohort: Original split is small

Recommendations

  • Treat results as didactic; report both augmented-test and original-external metrics.
  • Prefer calibration checks and confidence reporting when demonstrating.
  • When comparing models, keep the same split and random seed.

How to Get Started with the Model

Use the code below to get started with the model.

import pathlib
import shutil
import zipfile
import huggingface_hub as hf
from autogluon.tabular import TabularPredictor

# Set your Hugging Face model repository ID
REPO = "sunkaiwen/sketch2stl-parts-autogluon-predictor"
ZIPNAME = "autogluon_predictor_dir.zip"

dest = pathlib.Path("hf_download")
dest.mkdir(exist_ok=True)

# Download zipped predictor directory from Hugging Face Hub
zip_path = hf.hf_hub_download(
    repo_id=REPO,
    filename=ZIPNAME,
    repo_type="model",
    local_dir=str(dest),
    local_dir_use_symlinks=False,
)

# Extract to local folder
extract_dir = dest / "predictor_dir"
if extract_dir.exists():
    shutil.rmtree(extract_dir)
extract_dir.mkdir(parents=True, exist_ok=True)

with zipfile.ZipFile(zip_path, "r") as zf:
    zf.extractall(str(extract_dir))

# Load the trained predictor
predictor = TabularPredictor.load(str(extract_dir))

# Example usage: Generate predictions on test CAD part features
X_test = df_test[FEATURE_COLUMNS]
preds = predictor.predict(X_test)                     # Predicted binary label (0 = not_extrudable, 1 = extrudable)
probs = predictor.predict_proba(X_test)[1]             # Estimated probability of being extrudable

Training Details

Training Data

  • Dataset: sunkaiwen/sketch2stl-parts-tabular
  • Splits:
    • Train/Test: 80/20 stratified split on the augmented split (random_state=24679). Removed dual parent augmentations from the training data.
    • External Validation: Entire original split (not used in training)
  • Target column: extrudable

Training Procedure

  • Library: AutoGluon Tabular
  • Presets: "best_quality" (ensembles across boosted trees, kNN, neural nets, etc.)
  • Training time limit: 300 seconds
  • Evaluation metric (internal): AutoGluon default for classification (log_loss / accuracy depending on model family)

Hyperparameters

  • time_limit: 300s
  • presets: best_quality
  • random_state: 42
  • problem_type: inferred automatically by AutoGluon
  • eval_metric: None (AutoGluon default)

Evaluation

Testing Data

  • In-split test: Held-out 20% of augmented split
  • External validation: Full original split

Metrics

  • Accuracy: Fraction of correctly predicted labels
  • F1 (weighted): Harmonic mean of precision and recall, weighted by class support

Results (replace with actuals)

  • Augmented test: Accuracy = 1.0, Weighted F1 = 1.0
  • Original external: Accuracy = 1.0, Weighted F1 = 1.0
  • This looks suspicious, but the model's probability values when it makes a decision seem normal (not 100% certain with its choices)

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Dataset used to train OmarK211/2026-24679-extrusion-autogluon-classifier