sciagent-skill-creator
Scaffold a new SciAgent-Skills entry. Picks pipeline/toolkit/database/guide template, creates skills/{category}/{name}/SKILL.md with valid frontmatter, appends…
scikit-learn compatible Python toolkit for time series ML: classify, cluster, regress, segment, transform with 30+ algorithms (ROCKET, InceptionTime, KNN-DTW, HIVE-COTE, WEASEL). Handles panel, multivariate, and unequal-length series. Maintained successor to sktime.
$ npx -y skills add jaechang-hits/SciAgent-Skills --skill aeon --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/aeonContext preview
The summary Claude sees to decide when to auto-load this skill.
scikit-learn compatible Python toolkit for time series ML: classify, cluster, regress, segment, transform with 30+ algorithms (ROCKET, InceptionTime, KNN-DTW, HIVE-COTE, WEASEL). Handles panel, multivariate, and unequal-length series. Maintained successor to sktime.
name: "aeon" description: "scikit-learn compatible Python toolkit for time series ML: classify, cluster, regress, segment, transform with 30+ algorithms (ROCKET, InceptionTime, KNN-DTW, HIVE-COTE, WEASEL). Handles panel, multivariate, and unequal-length series. Maintained successor to sktime. Alternatives: sktime (larger ecosystem), tslearn (fewer algorithms), catch22 (features only)." license: "BSD-3-Clause"
aeon provides a unified scikit-learn-compatible API for time series ML tasks: classification, regression, clustering, segmentation, annotation, similarity search, and transformation. It follows the same `fit(X, y)` / `predict(X)` pattern as scikit-learn, where `X` is a 3D NumPy array of shape `(n_instances, n_channels, n_timepoints)`. aeon curates state-of-the-art algorithms from the time series literature — ROCKET and its variants (MiniROCKET, MultiROCKET) for classification, k-means with DTW for clustering, CLASP for segmentation — and provides benchmarking tools for comparing algorithms across datasets. It is the community-maintained fork of sktime following the 2022 governance split.
pip install aeon pip install aeon[all_extras] # includes numba, statsmodels for full algorithm support
import numpy as np
from aeon.classification.convolution_based import RocketClassifier
from aeon.datasets import load_unit_test
# Load a small benchmark dataset
X_train, y_train = load_unit_test(split="train") # shape: (n, 1, timepoints)
X_test, y_test = load_unit_test(split="test")
print(f"Train: {X_train.shape}, classes: {np.unique(y_train)}")
clf = RocketClassifier(num_kernels=500, random_state=42)
clf.fit(X_train, y_train)
accuracy = clf.score(X_test, y_test)
print(f"ROCKET accuracy: {accuracy:.3f}")30+ classifiers spanning convolution, dictionary, distance, feature, interval, and shapelet families.
import numpy as np
from aeon.datasets import load_unit_test
from aeon.classification.convolution_based import RocketClassifier, MiniRocketClassifier
from aeon.classification.distance_based import KNeighborsTimeSeriesClassifier
from aeon.classification.feature_based import Catch22Classifier
from sklearn.metrics import accuracy_score
X_train, y_train = load_unit_test(split="train")
X_test, y_test = load_unit_test(split="test")
classifiers = {
"ROCKET": RocketClassifier(num_kernels=1000, random_state=42),
"MiniROCKET": MiniRocketClassifier(random_state=42),
"KNN-DTW": KNeighborsTimeSeriesClassifier(n_neighbors=1, distance="dtw"),
"Catch22": Catch22Classifier(random_state=42),
}
for name, clf in classifiers.items():
clf.fit(X_train, y_train)
acc = accuracy_score(y_test, clf.predict(X_test))
print(f"{name:15s}: {acc:.3f}")# Multivariate classification (multiple channels)
from aeon.classification.convolution_based import MultiRocketMultivariateClassifier
# Synthetic multivariate time series: 100 instances, 3 channels, 50 timepoints
np.random.seed(0)
X_mv_train = np.random.randn(100, 3, 50)
y_mv_train = (X_mv_train[:, 0, :].mean(axis=1) > 0).astype(str)
X_mv_test = np.random.randn(30, 3, 50)
y_mv_test = (X_mv_test[:, 0, :].mean(axis=1) > 0).astype(str)
clf_mv = MultiRocketMultivariateClassifier(random_state=42)
clf_mv.fit(X_mv_train, y_mv_train)
print(f"Multivariate accuracy: {clf_mv.score(X_mv_test, y_mv_test):.3f}")Predict a continuous target from a time series input.
import numpy as np
from aeon.regression.convolution_based import RocketRegressor
from aeon.regression.distance_based import KNeighborsTimeSeriesRegressor
from sklearn.metrics import mean_squared_error
# Synthetic regression: predict the mean of each series
np.random.seed(42)
X_train = np.random.randn(200, 1, 100)
y_train = X_train[:, 0, :].mean(axis=1) + np.random.randn(200) * 0.1
X_test = np.random.randn(50, 1, 100)
y_test = X_test[:, 0, :].mean(axis=1) + np.random.randn(50) * 0.1
reg = RocketRegressor(num_kernels=500, random_state=42)
reg.fit(X_train, y_train)
y_pred = reg.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f"ROCKET regressor MSE: {mse:.4f}")Group time series by shape similarity without class labels.
import numpy as np from aeon.clustering.k_means import TimeSeriesKMeans from aeon.clustering.k_medoids import TimeSeriesKMedoids # Synthetic clustering dataset: 3 distinct shapes np.random.seed(0) n_per_class = 30 class_0 = np.sin(np.linspace(0, 2*np.pi, 50)) + np.random.randn(n_per_class, 1, 50)*0.1 class_1 = np.cos(np.linspace(0, 2*np.pi, 50)) + np.random.randn(n_per_class, 1, 50)*0.1 class_2 = np.linspace(0, 1, 50) + np.random.randn(n_per_class, 1, 50)*0.05 X = np.concatenate([class_0, class_1, class_2], axis=0) # K-Means with DTW averaging km = TimeSeriesKMeans(n_clusters=3, metric="dtw", averaging_method="
Turn your AI coding agent into a life sciences expert — 199 bioinformatics skills for Claude Code covering RNA-seq, single-cell analysis, genomics, proteomics, drug discovery, and more. Boosted BixBench from 65% to 92%. Open source.
Scaffold a new SciAgent-Skills entry. Picks pipeline/toolkit/database/guide template, creates skills/{category}/{name}/SKILL.md with valid frontmatter, appends…
Bayesian modeling with PyMC 5: priors, likelihood, NUTS/ADVI sampling, diagnostics (R-hat, ESS), LOO/WAIC comparison, prediction. Hierarchical, logistic, GP…
Time-to-event modeling with scikit-survival: Cox PH (elastic net), Random Survival Forests, Boosting, SVMs for censored data. C-index, Brier, time-dependent…
Guided statistical analysis: test choice, assumption checks, effect sizes, power, APA reporting. Pick tests, verify assumptions, or format results for…
Python statistical modeling: regression (OLS, WLS, GLM), discrete (Logit, Poisson, NegBin), time series (ARIMA, SARIMAX, VAR), with rigorous inference,…
DL cell/nucleus segmentation for fluorescence and brightfield microscopy. Pre-trained models (cyto3, nuclei, tissuenet) and a generalist flow-based algorithm…