{"id":"aeon","name":"aeon","summary":"このスキルは、分類、回帰、クラスタリング、予測、異常検出、セグメンテーション、類似性検索などの時系列機械学習タスクに活用すべきです。","body":"# Aeon Time Series Machine Learning\n\n## Overview\n\nAeon is a scikit-learn compatible Python toolkit for time series machine learning ([aeon-toolkit.org](https://www.aeon-toolkit.org/)). It provides algorithms across classification, regression, clustering, forecasting, anomaly detection, segmentation, similarity search, distances, transformations, benchmarking, and visualization — with a consistent estimator API.\n\n**Version note:** Examples target **aeon 1.x** (stable docs: v1.4.0, March 2026). The v1.0 release reworked forecasting and transformations; import paths differ from aeon 0.x/sktime-era code.\n\n## When to Use This Skill\n\nApply this skill when:\n- Classifying or predicting from time series data\n- Detecting anomalies or change points in temporal sequences\n- Clustering similar time series patterns\n- Forecasting future values\n- Finding repeated patterns (motifs) or unusual subsequences (discords)\n- Comparing time series with specialized distance metrics\n- Extracting features from temporal data\n\n## Installation\n\nRequires **Python 3.10+** (3.11+ recommended). Pin a 1.x release for reproducibility:\n\n```bash\nuv pip install \"aeon>=1.4,<2\"\n```\n\nFor deep learning forecasters/classifiers and other optional estimators:\n\n```bash\nuv pip install \"aeon[all_extras]>=1.4,<2\"\n```\n\nOn zsh, quote the extras: `uv pip install \"aeon[all_extras]>=1.4,<2\"`.\n\n### Experimental modules\n\nUpstream treats **forecasting**, **anomaly_detection**, **segmentation**, **similarity_search**, and **visualisation** as experimental — interfaces may change between minor releases. Prefer stable modules (classification, regression, clustering, distances, transformations) for production pipelines unless you need these tasks.\n\n## Core Capabilities\n\n### 1. Time Series Classification\n\nCategorize time series into predefined classes. See `references/classification.md` for complete algorithm catalog.\n\n**Quick Start:**\n```python\nfrom aeon.classification.convolution_based import RocketClassifier\nfrom aeon.datasets import load_classification\n\n# Load data\nX_train, y_train = load_classification(\"GunPoint\", split=\"train\")\nX_test, y_test = load_classification(\"GunPoint\", split=\"test\")\n\n# Train classifier\nclf = RocketClassifier(n_kernels=10000)\nclf.fit(X_train, y_train)\naccuracy = clf.score(X_test, y_test)\n```\n\n**Algorithm Selection:**\n- **Speed + Performance**: `MiniRocketClassifier`, `Arsenal`\n- **Maximum Accuracy**: `HIVECOTEV2`, `InceptionTimeClassifier`\n- **Interpretability**: `ShapeletTransformClassifier`, `Catch22Classifier`\n- **Small Datasets**: `KNeighborsTimeSeriesClassifier` with DTW distance\n\n### 2. Time Series Regression\n\nPredict continuous values from time series. See `references/regression.md` for algorithms.\n\n**Quick Start:**\n```python\nfrom aeon.regression.convolution_based import RocketRegressor\nfrom aeon.datasets import load_regression\n\nX_train, y_train = load_regression(\"Covid3Month\", split=\"train\")\nX_test, y_test = load_regression(\"Covid3Month\", split=\"test\")\n\nreg = RocketRegressor()\nreg.fit(X_train, y_train)\npredictions = reg.predict(X_test)\n```\n\n### 3. Time Series Clustering\n\nGroup similar time series without labels. See `references/clustering.md` for methods.\n\n**Quick Start:**\n```python\nfrom aeon.clustering import TimeSeriesKMeans\n\nclusterer = TimeSeriesKMeans(\n    n_clusters=3,\n    distance=\"dtw\",\n    averaging_method=\"ba\"\n)\nlabels = clusterer.fit_predict(X_train)\ncenters = clusterer.cluster_centers_\n```\n\n### 4. Forecasting\n\nPredict future time series values (experimental module in aeon 1.x). See `references/forecasting.md` for forecasters.\n\n**Quick Start:**\n```python\nimport numpy as np\nfrom aeon.forecasting import NaiveForecaster\nfrom aeon.forecasting.stats import ARIMA\n\ny_train = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0])\n\n# Set horizon in the constructor; predict passes the series to forecast from\nnaive = NaiveForecaster(strategy=\"last\", horizon=5)\nnaive.fit(y_train)\ny_pred = naive.predict(y_train)\n\n# ARIMA uses p/d/q (not order=); multi-step via iterative_forecast\narima = ARIMA(p=1, d=1, q=1)\narima.fit(y_train)\ny_pred = arima.iterative_forecast(y_train, prediction_horizon=5)\n```\n\n### 5. Anomaly Detection\n\nIdentify unusual patterns or outliers. See `references/anomaly_detection.md` for detectors.\n\n**Quick Start:**\n```python\nfrom aeon.anomaly_detection import STOMP\n\ndetector = STOMP(window_size=50)\nanomaly_scores = detector.fit_predict(y)\n\n# Higher scores indicate anomalies\nthreshold = np.percentile(anomaly_scores, 95)\nanomalies = anomaly_scores > threshold\n```\n\n### 6. Segmentation\n\nPartition time series into regions with change points. See `references/segmentation.md`.\n\n**Quick Start:**\n```python\nfrom aeon.segmentation import ClaSPSegmenter\n\nsegmenter = ClaSPSegmenter()\nchange_points = segmenter.fit_predict(y)\n```\n\n### 7. Similarity Search\n\nFind similar patterns within or across time series. See `references/similarity_search.md`.\n\n**Quick Start:**\n```python\nfrom aeon.similarity_search import StompMotif\n\n# Find recurring patterns\nmotif_finder = StompMotif(window_size=50, k=3)\nmotifs = motif_finder.fit_predict(y)\n```\n\n## Feature Extraction and Transformations\n\nTransform time series for feature engineering. See `references/transformations.md`.\n\n**ROCKET Features:**\n```python\nfrom aeon.transformations.collection.convolution_based import RocketTransformer\n\nrocket = RocketTransformer()\nX_features = rocket.fit_transform(X_train)\n\n# Use features with any sklearn classifier\nfrom sklearn.ensemble import RandomForestClassifier\nclf = RandomForestClassifier()\nclf.fit(X_features, y_train)\n```\n\n**Statistical Features:**\n```python\nfrom aeon.transformations.collection.feature_based import Catch22\n\ncatch22 = Catch22()\nX_features = catch22.fit_transform(X_train)\n```\n\n**Preprocessing:**\n```python\nfrom aeon.transformations.collection import MinMaxScaler, Normalizer\n\nscaler = Normalizer()  # Z-normalization\nX_normalized = scaler.fit_transform(X_train)\n```\n\n## Distance Metrics\n\nSpecialized temporal distance measures. See `references/distances.md` for complete catalog.\n\n**Usage:**\n```python\nfrom aeon.distances import dtw_distance, dtw_pairwise_distance\n\n# Single distance\ndistance = dtw_distance(x, y, window=0.1)\n\n# Pairwise distances\ndistance_matrix = dtw_pairwise_distance(X_train)\n\n# Use with classifiers\nfrom aeon.classification.distance_based import KNeighborsTimeSeriesClassifier\n\nclf = KNeighborsTimeSeriesClassifier(\n    n_neighbors=5,\n    distance=\"dtw\",\n    distance_params={\"window\": 0.2}\n)\n```\n\n**Available Distances:**\n- **Elastic**: DTW, DDTW, WDTW, ERP, EDR, LCSS, TWE, MSM\n- **Lock-step**: Euclidean, Manhattan, Minkowski\n- **Shape-based**: Shape DTW, SBD\n\n## Deep Learning Networks\n\nNeural architectures for time series. See `references/networks.md`.\n\n**Architectures:**\n- Convolutional: `FCNClassifier`, `ResNetClassifier`, `InceptionTimeClassifier`\n- Recurrent: `RecurrentNetwork`, `TCNNetwork`\n- Autoencoders: `AEFCNClusterer`, `AEResNetClusterer`\n\n**Usage:**\n```python\nfrom aeon.classification.deep_learning import InceptionTimeClassifier\n\nclf = InceptionTimeClassifier(n_epochs=100, batch_size=32)\nclf.fit(X_train, y_train)\npredictions = clf.predict(X_test)\n```\n\n## Datasets and Benchmarking\n\nLoad standard benchmarks and evaluate performance. See `references/datasets_benchmarking.md`.\n\n**Load Datasets:**\n```python\nfrom aeon.datasets import load_classification, load_gunpoint, load_regression\n\n# Classification (generic loader or dataset-specific helper)\nX_train, y_train = load_classification(\"GunPoint\", split=\"train\")\nX_train, y_train = load_gunpoint(split=\"train\")  # same UCR dataset\n\n# Regression\nX_train, y_train = load_regression(\"Covid3Month\", split=\"train\")\n```\n\n**Benchmarking:**\n```python\nfrom aeon.benchmarking import get_estimator_results\n\n# Compare with published results\npublished = get_estimator_results(\"ROCKET\", \"GunPoint\")\n```\n\n## Common Workflows\n\n### Classification Pipeline\n\n```python\nfrom aeon.transformations.collection import Normalizer\nfrom aeon.classification.convolution_based import RocketClassifier\nfrom sklearn.pipeline import Pipeline\n\npipeline = Pipeline([\n    ('normalize', Normalizer()),\n    ('classify', RocketClassifier())\n])\n\npipeline.fit(X_train, y_train)\naccuracy = pipeline.score(X_test, y_test)\n```\n\n### Feature Extraction + Traditional ML\n\n```python\nfrom aeon.transformations.collection import RocketTransformer\nfrom sklearn.ensemble import GradientBoostingClassifier\n\n# Extract features\nrocket = RocketTransformer()\nX_train_features = rocket.fit_transform(X_train)\nX_test_features = rocket.transform(X_test)\n\n# Train traditional ML\nclf = GradientBoostingClassifier()\nclf.fit(X_train_features, y_train)\npredictions = clf.predict(X_test_features)\n```\n\n### Anomaly Detection with Visualization\n\n```python\nfrom aeon.anomaly_detection import STOMP\nimport matplotlib.pyplot as plt\n\ndetector = STOMP(window_size=50)\nscores = detector.fit_predict(y)\n\nplt.figure(figsize=(15, 5))\nplt.subplot(2, 1, 1)\nplt.plot(y, label='Time Series')\nplt.subplot(2, 1, 2)\nplt.plot(scores, label='Anomaly Scores', color='red')\nplt.axhline(np.percentile(scores, 95), color='k', linestyle='--')\nplt.show()\n```\n\n## Best Practices\n\n### Data Preparation\n\n1. **Normalize**: Most algorithms benefit from z-normalization\n   ```python\n   from aeon.transformations.collection import Normalizer\n   normalizer = Normalizer()\n   X_train = normalizer.fit_transform(X_train)\n   X_test = normalizer.transform(X_test)\n   ```\n\n2. **Handle Missing Values**: Impute before analysis\n   ```python\n   from aeon.transformations.collection import SimpleImputer\n   imputer = SimpleImputer(strategy='mean')\n   X_train = imputer.fit_transform(X_train)\n   ```\n\n3. **Check Data Format**: Collections use `(n_cases, n_channels, n_timepoints)`; single series use `(n_channels, n_timepoints)` (see [data format](https://www.aeon-toolkit.org/en/stable/api_reference/data_format.html))\n\n### Model Selection\n\n1. **Start Simple**: Begin with ROCKET variants before deep learning\n2. **Use Validation**: Split training data for hyperparameter tuning\n3. **Compare Baselines**: Test against simple methods (1-NN Euclidean, Naive)\n4. **Consider Resources**: ROCKET for speed, deep learning if GPU available\n\n### Algorithm Selection Guide\n\n**For Fast Prototyping:**\n- Classification: `MiniRocketClassifier`\n- Regression: `MiniRocketRegressor`\n- Clustering: `TimeSeriesKMeans` with Euclidean\n\n**For Maximum Accuracy:**\n- Classification: `HIVECOTEV2`, `InceptionTimeClassifier`\n- Regression: `InceptionTimeRegressor`\n- Forecasting: `AutoARIMA`, `AutoETS`, `TCNForecaster` (requires `[all_extras]` for deep learning)\n\n**For Interpretability:**\n- Classification: `ShapeletTransformClassifier`, `Catch22Classifier`\n- Features: `Catch22`, `TSFresh`\n\n**For Small Datasets:**\n- Distance-based: `KNeighborsTimeSeriesClassifier` with DTW\n- Avoid: Deep learning (requires large data)\n\n## Reference Documentation\n\nDetailed information available in `references/`:\n- `classification.md` - All classification algorithms\n- `regression.md` - Regression methods\n- `clustering.md` - Clustering algorithms\n- `forecasting.md` - Forecasting approaches\n- `anomaly_detection.md` - Anomaly detection methods\n- `segmentation.md` - Segmentation algorithms\n- `similarity_search.md` - Pattern matching and motif discovery\n- `transformations.md` - Feature extraction and preprocessing\n- `distances.md` - Time series distance metrics\n- `networks.md` - Deep learning architectures\n- `datasets_benchmarking.md` - Data loading and evaluation tools\n\n## Additional Resources\n\n- Documentation: https://www.aeon-toolkit.org/\n- GitHub: https://github.com/aeon-toolkit/aeon\n- Examples: https://www.aeon-toolkit.org/en/stable/examples.html\n- API Reference: https://www.aeon-toolkit.org/en/stable/api_reference.html","author":"@K-Dense-AI","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/K-Dense-AI/scientific-agent-skills/tree/main/skills/aeon","license":"MIT","category":"document","lang":"en","tokens":2871,"stars":0,"calls30d":1,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[{"path":"references/anomaly_detection.md","size":4912,"sha256":"f7121dbcfff6ed13356a5540488272ef7fbd6cee4eeb139d33bb1b8214cf573b"},{"path":"references/classification.md","size":5377,"sha256":"5aea5ecf30840d0748077a9ac617ec460711ba70f8ef5df650a31f134b605067"},{"path":"references/clustering.md","size":3744,"sha256":"ab2635b7d55ae727bc027c0b0f21dc65167c35b0379acbd19396db82594c2832"},{"path":"references/datasets_benchmarking.md","size":9244,"sha256":"1830d335c9fb02fbd8cf9765f22309e81ee562fdd6f199435178ef2a18beb4ce"},{"path":"references/distances.md","size":6409,"sha256":"1b9a0371bad5babf386cf52405fc48b93097b05706a5c79ef6d216f94f502d04"},{"path":"references/forecasting.md","size":4017,"sha256":"3ee8527837e92712306688301b0abb8c19b7bfb3f249cd1239f1039f5026477d"},{"path":"references/networks.md","size":7901,"sha256":"fccccdfd172c5f1578d462d06f66187b9f4242144a59abfd8408f467d9e40e65"},{"path":"references/regression.md","size":3960,"sha256":"39ccf444ec621c1e4c89fe4ba56db5d5b7b3c55bce12cd4035fd6451f734c294"},{"path":"references/segmentation.md","size":4924,"sha256":"7495a53b149750c2fc310a545c9f9b27523626f5d38689cde34ec9585450573a"},{"path":"references/similarity_search.md","size":5242,"sha256":"9d803e450a82dd864f7f7b8859fe7dc2d210b14369d0ae2ab8b74922446741e5"},{"path":"references/transformations.md","size":7725,"sha256":"e7807df13949b036f30212d98b921ad6f31e0720d145ff3196f85a3584788da4"}],"requires":{"mcp":[],"tools":["Read Write Edit Bash"]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":["www.aeon-toolkit.org"]}}