Skip to content
Back to skills

Custom Components

ASecurity

"Extend auto-sklearn with custom classifiers, regressors, feature

  • 247 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
developmentpythongo

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill custom-components --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Custom Components?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Custom Components
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-custom-components/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-custom-components)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: custom-components
description: "Extend auto-sklearn with custom classifiers, regressors, feature
  preprocessors, data preprocessors, ConfigSpace search spaces, registration,
  and component IDs."
disable-model-invocation: true
metadata:
  disco-role: operating
license: BSD 3-Clause
---

# custom-components

Use this sub-skill when a task needs to author, repair, register, or restrict
auto-sklearn components rather than merely run an existing estimator. The package
imports as `autosklearn`; the inspected package version was `0.16.0dev` /
`0.16.0.dev0`.

## Route here for

- Creating or fixing subclasses of:
  - `AutoSklearnClassificationAlgorithm`
  - `AutoSklearnRegressionAlgorithm`
  - `AutoSklearnPreprocessingAlgorithm`
- Implementing `get_properties()`, `get_hyperparameter_search_space()`,
  `fit()`, `predict()`, `predict_proba()`, and `transform()` for custom
  components.
- Calling `add_classifier()`, `add_regressor()`, or the feature/data
  `add_preprocessor()` registry functions.
- Choosing the correct custom component ID for `include` / `exclude` after
  registration.
- Replacing a broad built-in component search space with a custom wrapper that
  exposes fewer hyperparameters or narrower ranges.

## Route elsewhere

- Basic `AutoSklearnClassifier`, `AutoSklearnRegressor`, or `AutoSklearn2Classifier`
  usage: use [`../estimators/SKILL.md`](../estimators/SKILL.md).
- Ordinary built-in `include` / `exclude`, Dask, SMAC, budget, or ensemble
  configuration with no custom component code: use
  [`../search-and-parallelism/SKILL.md`](../search-and-parallelism/SKILL.md).
- Pandas dtypes, `feat_type`, target validation, custom metrics, resampling, or
  dataset compression: use
  [`../data-metrics-validation/SKILL.md`](../data-metrics-validation/SKILL.md).
- Long AutoML training runs for a new component: do not start them from this
  sub-skill. Validate the class, registry entry, and configuration space first.

## Operating procedure

1. Identify the component kind and registry:
   - classifier: base class `AutoSklearnClassificationAlgorithm`, registry
     `autosklearn.pipeline.components.classification.add_classifier`, include key
     `"classifier"`.
   - regressor: base class `AutoSklearnRegressionAlgorithm`, registry
     `autosklearn.pipeline.components.regression.add_regressor`, include key
     `"regressor"`.
   - feature preprocessor: base class `AutoSklearnPreprocessingAlgorithm`,
     registry `autosklearn.pipeline.components.feature_preprocessing.add_preprocessor`,
     include key `"feature_preprocessor"`.
   - data preprocessor: base class `AutoSklearnPreprocessingAlgorithm`, registry
     `autosklearn.pipeline.components.data_preprocessing.add_preprocessor`,
     include key `"data_preprocessor"`.
2. Read [`references/component-contracts.md`](references/component-contracts.md)
   before editing code. It contains the required properties, constants, built-in
   IDs, registry rules, and ConfigSpace rules.
3. If a safe starting file is useful, generate a no-training template:
   `python scripts/component_skeleton.py --kind classifier --class-name MyClassifier`
   or write it with `--output my_components.py`.
4. Keep the registration call in code that is imported before constructing the
   auto-sklearn estimator. For custom components, the ID used in `include` /
   `exclude` is the class name, for example `{"classifier": ["MyClassifier"]}`.
5. Validate without long training: import the module, call `get_properties()`,
   call `get_hyperparameter_search_space()`, register the class, and confirm the
   choice appears in the relevant component catalog or estimator configuration
   space.
6. For complete recipes, use [`references/workflows.md`](references/workflows.md).
   For errors, use [`references/troubleshooting.md`](references/troubleshooting.md).

## Quick validation snippets

Classifier registry check after importing the module that defines the class:

```python
from autosklearn.pipeline.components.classification import ClassifierChoice, add_classifier
from my_components import MyClassifier

add_classifier(MyClassifier)  # harmless if your module did not self-register
props = MyClassifier.get_properties()
required = {
    "shortname", "name", "handles_regression", "handles_classification",
    "handles_multiclass", "handles_multilabel", "handles_multioutput",
    "is_deterministic", "input", "output",
}
assert set(props) == required
cs = MyClassifier.get_hyperparameter_search_space()
assert "MyClassifier" in ClassifierChoice.get_components()
```

Estimator restriction check without starting a long run:

```python
import autosklearn.classification

automl = autosklearn.classification.AutoSklearnClassifier(
    time_left_for_this_task=30,
    per_run_time_limit=10,
    include={"classifier": ["MyClassifier"]},
    initial_configurations_via_metalearning=0,
    smac_scenario_args={"runcount_limit": 1},
)
# Build or inspect the configuration space with tiny in-memory X/y before any
# expensive fit. If the ID is wrong, this should fail before training.
```

## Native evidence anchors for later verification

Relevant native candidates are the component registration unit checks, component
base-contract checks, and the extension examples. The extension examples are
fit-heavy and should remain skip-expensive unless a verifier deliberately bounds
them; prefer the bundled skeleton `--help` check and static registry/config-space
checks first.

Files in this skill

  • SKILL.md5.3 KB
  • references/component-contracts.md11 KB
  • references/troubleshooting.md10.5 KB
  • references/workflows.md11.9 KB
  • scripts/component_skeleton.py8.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…