Autism Spectrum Disorder Screening Model

Model Description

A feedforward neural network for autism spectrum disorder (ASD) risk screening using 8 structured clinical input features.

Important: This is a screening tool, NOT a diagnostic instrument. Results must be interpreted by qualified healthcare professionals.

Intended Use

  • Primary use: Clinical decision support for ASD screening
  • Users: Healthcare professionals, clinical software systems
  • Out of scope: Self-diagnosis, definitive diagnosis

Input Features

Field Type Valid Values Description
developmental_milestones categorical N, G, M, C Normal, Global delay, Motor delay, Cognitive delay
iq_dq numeric 20-150 IQ or Developmental Quotient
intellectual_disability categorical N, F70.0, F71, F72 None, Mild, Moderate, Severe (ICD-10)
language_disorder binary N, Y No / Yes
language_development categorical N, delay, A Normal, Delayed, Absent
dysmorphism binary NO, Y No / Yes
behaviour_disorder binary N, Y No / Yes
neurological_exam text non-empty string N for normal, or description

Output

{
  "prediction": "Healthy" | "ASD",
  "probability": 0.0-1.0,
  "risk_level": "low" | "medium" | "high"
}

Risk Level Thresholds

  • Low: probability < 0.4
  • Medium: 0.4 ≤ probability < 0.7
  • High: probability ≥ 0.7

How to Use

import json
import torch
from pathlib import Path
from huggingface_hub import snapshot_download

# Download model
model_dir = Path(snapshot_download("toderian/autism-detector"))

# Load config
with open(model_dir / "preprocessor_config.json") as f:
    preprocess_config = json.load(f)

# Load model
model = torch.jit.load(model_dir / "autism_detector_traced.pt")
model.eval()

# Preprocessing function
def preprocess(data, config):
    features = []
    for feature_name in config["feature_order"]:
        if feature_name in config["categorical_features"]:
            feat_config = config["categorical_features"][feature_name]
            if feat_config["type"] == "text_binary":
                value = 0 if data[feature_name].upper() == feat_config["normal_value"] else 1
            else:
                value = feat_config["mapping"][data[feature_name]]
        else:
            feat_config = config["numeric_features"][feature_name]
            raw = float(data[feature_name])
            value = (raw - feat_config["min"]) / (feat_config["max"] - feat_config["min"])
        features.append(value)
    return torch.tensor([features], dtype=torch.float32)

# Example inference
input_data = {
    "developmental_milestones": "N",
    "iq_dq": 85,
    "intellectual_disability": "N",
    "language_disorder": "N",
    "language_development": "N",
    "dysmorphism": "NO",
    "behaviour_disorder": "N",
    "neurological_exam": "N"
}

input_tensor = preprocess(input_data, preprocess_config)
with torch.no_grad():
    output = model(input_tensor)
    probs = torch.softmax(output, dim=-1)
    asd_probability = probs[0, 1].item()

print(f"ASD Probability: {asd_probability:.2%}")
print(f"Prediction: {'ASD' if asd_probability > 0.5 else 'Healthy'}")

Training Details

  • Dataset: 315 ASD patients + 100 healthy controls (415 total)
  • Preprocessing: Min-max normalization for numeric, label encoding for categorical
  • Architecture: Feedforward NN (input → 64 → 32 → 2)
  • Loss: Cross-entropy
  • Optimizer: Adam (lr=0.001)

Evaluation

Metric Value
Accuracy 0.9759
F1 Score 0.9839
ROC-AUC 0.9913
Sensitivity 0.9683
Specificity 1.0000

Confusion Matrix (Test Set, n=83)

Predicted Healthy Predicted ASD
Actual Healthy 20 0
Actual ASD 2 61

Limitations

  • Trained on limited dataset (415 samples)
  • Healthy controls are synthetically generated
  • Not validated across diverse populations
  • Screening tool only, not diagnostic
  • Requires all 8 input fields

Ethical Considerations

  • Results should always be reviewed by qualified professionals
  • Should not be used as sole basis for clinical decisions
  • Model performance may vary across different populations
  • False negatives (2 in test set) may delay intervention

Files

File Description
autism_detector_traced.pt TorchScript model (load with torch.jit.load())
config.json Model architecture configuration
preprocessor_config.json Feature preprocessing rules (JSON, no pickle)
model.py Model class definition
requirements.txt Python dependencies

Citation

@misc{asd_detector_2024,
  title={Autism Spectrum Disorder Screening Model},
  year={2024},
  publisher={HuggingFace},
  url={https://huggingface.co/toderian/autism-detector}
}
Downloads last month
52
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support