К основному содержанию
скилл CX Codex

ml-model-training — скилл для Claude Code: обучение ML-моделей

Скилл ведёт агента по полному циклу обучения модели: подготовка данных, разбивка, тренировка и оценка. Пригодится, когда нужно собрать классификатор или регрессию без забытых шагов.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add secondsky/claude-skills --skill ml-model-training -a claude-code
Открыть на GitHub

Что делает ml-model-training

Скилл описывает рабочий процесс из пяти шагов: подготовка данных, feature engineering, выбор модели, обучение, оценка. Внутри есть готовые примеры кода на scikit-learn, PyTorch и TensorFlow/Keras — от train_test_split и StandardScaler до цикла обучения с Adam и BCELoss. Агент берёт эти шаблоны как основу и подставляет ваши данные.

Отдельный раздел — типичные ошибки. Утечка данных при масштабировании до разбивки, игнорирование дисбаланса классов, переобучение без регуляризации, отсутствие random seed, подбор гиперпараметров на тестовой выборке. Для каждой ошибки дан неправильный и правильный вариант кода. Ещё есть таблица метрик: accuracy, precision, recall, F1, AUC-ROC для классификации; MSE, RMSE, MAE, R² для регрессии.

Для полных примеров с early stopping, планировщиком learning rate и чекпоинтами скилл ссылается на references/pytorch-training.md и references/tensorflow-keras.md. Эти файлы нужно подгружать отдельно. Советует начать с разбивки 70/15/15 и кросс-валидации, но под ваши данные пропорции придётся подбирать самому.

Какие задачи решает

  • разбить датасет на train/val/test без утечки данных
  • подобрать гиперпараметры через GridSearchCV на обучающей выборке
  • исправить переобучение через dropout и early stopping
  • устранить дисбаланс классов весами или SMOTE
  • зафиксировать random seed для воспроизводимости результатов

Примеры запросов агенту

  • Обучи RandomForestClassifier на data.csv, сделай разбивку 70/15/15 и покажи classification_report
  • Напиши цикл обучения на PyTorch с early stopping и сохранением чекпоинтов
  • Проверь мой код на утечку данных: scaler вызывается до train_test_split

Как установить ml-model-training

1Через Skills CLI (Vercel)

npx skills add secondsky/claude-skills --skill ml-model-training -a claude-code

2Вручную: положить файлы

~/.claude/skills/ml-model-training/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/ml-model-training/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора89

technical-specification Скилл ведёт агента по шаблону технической спецификации: требования, архитектура, API, план внедрения, тесты и риски. Пригодится, когда фичу планируют до кода. CX Codex +1 470установок mobile-app-testing Скилл для тестирования мобильных приложений: юнит-тесты, UI-автоматизация, E2E и производительность. Пригодится, когда нужно настроить тестовую инфраструктуру. CX Codex +1 467установок bun-test-basics Скилл подсказывает синтаксис bun:test: ассерты, describe/it, модификаторы skip, only, each и запуск тестов. CX Codex +1 458установок threejs Скилл с готовыми примерами и справочниками по Three.js: сцены, материалы, свет, шейдеры, загрузка GLTF. Пригодится, когда собираете 3D в браузере. CX Codex +1 460установок payment-gateway-integration Скилл для подключения Stripe, PayPal или Square: платящие интенты, подписки, вебхуки и возвраты. Пригодится, когда пишете чекаут или биллинг. CX Codex +1 454установок api-reference-documentation Собирает справочник по REST API из спецификации OpenAPI: эндпоинты, авторизация, примеры запросов и ответов. Пригодится, когда нужен developer portal или SDK-референс. CX Codex +1 454установок csrf-protection Скилл подсказывает агенту, как закрыть формы и эндпоинты от подделки запросов: синхронизатор-токены, double-submit cookie и SameSite. CX Codex +1 453установок bun-hono-integration Скилл подсказывает агенту, как строить API на Hono под Bun: маршруты, middleware, валидация через Zod, RPC-клиент. Пригодится, когда проект уже крутится на Bun. CX Codex +1 452установок

Похожие

ML Model Training aj-geddes Скилл для обучения моделей машинного обучения: классификация, регрессия и кластеризация на scikit-learn, PyTorch и TensorFlow. CX Codex +1 515установок Model Hyperparameter Tuning aj-geddes Скилл для подбора гиперпараметров моделей: grid search, random search, байесовская оптимизация через Optuna. Пригодится, когда базовые настройки уже не тянут. CX Codex +1 494установок experiment-code lingzhi227 Пишет и дорабатывает код ML-экспериментов для научной статьи: обучение, оценка, отладка, графики. Пригодится, когда нужно прогнать серию запусков и сравнить результаты. CX Codex +1 1 600установок scikit-learn K-Dense-AI Скилл для задач машинного обучения на Python: классификация, регрессия, кластеризация, препроцессинг и сборка ML-пайплайнов с библиотекой scikit-learn 1.9.1. CX Codex +1 2 200установок scikit-survival K-Dense-AI Скилл для scikit-survival 0.28.0: агент собирает и проверяет модели выживаемости на цензурированных данных, от Cox PH до лесов, и считает метрики с поправкой на цензурирование. CX Codex +1 2 000установок data-scientist borghei Задаёт структуру для машинного обучения, проверки гипотез и отбора признаков. Пригодится при оценке моделей и подготовке пайплайнов. CX Codex +1 440установок

Рядом в теме «ИИ и ML»

Всё по теме «ИИ и ML» →

Вопросы о ml-model-training

Как установить ml-model-training в Claude?

Выполните npx skills add secondsky/claude-skills --skill ml-model-training -a claude-code. Скилл появится в ~/.claude/skills/ml-model-training/SKILL.md.

Что делает ml-model-training?

Проводит агента по циклу обучения ML-модели: подготовка данных, feature engineering, выбор модели, тренировка, оценка. Содержит примеры на scikit-learn, PyTorch и TensorFlow/Keras.

Какие ошибки помогает предотвратить скилл?

Утечку данных при масштабировании, игнорирование дисбаланса классов, переобучение без регуляризации, отсутствие random seed и подбор гиперпараметров на тестовой выборке.

Исходный текст

SKILL.md · MIT
---
name: ml-model-training
description: Train ML models with scikit-learn, PyTorch, TensorFlow. Use for classification/regression, neural networks, hyperparameter tuning, or encountering overfitting, underfitting, convergence issues.
license: MIT
metadata:
  keywords: "machine learning, model training, PyTorch, TensorFlow, scikit-learn, neural networks, deep learning, classification, regression, hyperparameter tuning, cross-validation, model evaluation, data preprocessing, feature engineering"
---

# ML Model Training

Train machine learning models with proper data handling and evaluation.

## Training Workflow

1. Data Preparation → 2. Feature Engineering → 3. Model Selection → 4. Training → 5. Evaluation

## Data Preparation

```python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler, LabelEncoder

# Load and clean data
df = pd.read_csv('data.csv')
df = df.dropna()

# Encode categorical variables
le = LabelEncoder()
df['category'] = le.fit_transform(df['category'])

# Split data (70/15/15)
X = df.drop('target', axis=1)
y = df['target']
X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.3)
X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5)

# Scale features
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_val = scaler.transform(X_val)
X_test = scaler.transform(X_test)
```

## Scikit-learn Training

```python
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, accuracy_score

model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

y_pred = model.predict(X_val)
print(classification_report(y_val, y_pred))
```

## PyTorch Training

```python
import torch
import torch.nn as nn

class Model(nn.Module):
    def __init__(self, input_dim):
        super().__init__()
        self.layers = nn.Sequential(
            nn.Linear(input_dim, 64),
            nn.ReLU(),
            nn.Dropout(0.3),
            nn.Linear(64, 32),
            nn.ReLU(),
            nn.Linear(32, 1),
            nn.Sigmoid()
        )

    def forward(self, x):
        return self.layers(x)

model = Model(X_train.shape[1])
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
criterion = nn.BCELoss()

for epoch in range(100):
    model.train()
    optimizer.zero_grad()
    output = model(X_train_tensor)
    loss = criterion(output, y_train_tensor)
    loss.backward()
    optimizer.step()
```

## Evaluation Metrics

| Task | Metrics |
|------|---------|
| Classification | Accuracy, Precision, Recall, F1, AUC-ROC |
| Regression | MSE, RMSE, MAE, R² |

## Complete Framework Examples

- **PyTorch**: See [references/pytorch-training.md](references/pytorch-training.md) for complete training with:
  - Custom model classes with BatchNorm and Dropout
  - Training/validation loops with early stopping
  - Learning rate scheduling
  - Model checkpointing
  - Full evaluation with classification report

- **TensorFlow/Keras**: See [references/tensorflow-keras.md](references/tensorflow-keras.md) for:
  - Sequential model architecture
  - Callbacks (EarlyStopping, ReduceLROnPlateau, ModelCheckpoint, TensorBoard)
  - Training history visualization
  - TFLite conversion for mobile deployment
  - Custom training loops

## Best Practices

**Do:**
- Use cross-validation for robust evaluation
- Track experiments with MLflow
- Save model checkpoints regularly
- Monitor for overfitting
- Document hyperparameters
- Use 70/15/15 train/val/test split

**Don't:**
- Train without a validation set
- Ignore class imbalance
- Skip feature scaling
- Use test set for hyperparameter tuning
- Forget to set random seeds

## Known Issues Prevention

### 1. Data Leakage
**Problem**: Scaling or transforming data before splitting leads to test set information leaking into training.

**Solution**: Always split data first, then fit transformers only on training data:
```python
# ✅ Correct: Fit on train, transform train/val/test
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_val = scaler.transform(X_val)  # Only transform
X_test = scaler.transform(X_test)  # Only transform

# ❌ Wrong: Fitting on all data
X_all = scaler.fit_transform(X)  # Leaks test info!
```

### 2. Class Imbalance Ignored
**Problem**: Training on imbalanced datasets (e.g., 95% class A, 5% class B) leads to models that predict only the majority class.

**Solution**: Use class weights or resampling:
```python
from sklearn.utils.class_weight import compute_class_weight

# Compute class weights
class_weights = compute_class_weight('balanced', classes=np.unique(y_train), y=y_train)
model = RandomForestClassifier(class_weight='balanced')

# Or use SMOTE for oversampling minority class
from imblearn.over_sampling import SMOTE
smote = SMOTE()
X_resampled, y_resampled = smote.fit_resample(X_train, y_train)
```

### 3. Overfitting Due to No Regularization
**Problem**: Complex models memorize training data, perform poorly on validation/test sets.

**Solution**: Add regularization techniques:
```python
# Dropout in PyTorch
nn.Dropout(0.3)

# L2 regularization in scikit-learn
RandomForestClassifier(max_depth=10, min_samples_split=20)

# Early stopping in Keras
from tensorflow.keras.callbacks import EarlyStopping
early_stop = EarlyStopping(monitor='val_loss', patience=10, restore_best_weights=True)
model.fit(X_train, y_train, validation_data=(X_val, y_val), callbacks=[early_stop])
```

### 4. Not Setting Random Seeds
**Problem**: Results are not reproducible across runs, making debugging and comparison impossible.

**Solution**: Set all random seeds:
```python
import random
import numpy as np
import torch

random.seed(42)
np.random.seed(42)
torch.manual_seed(42)
if torch.cuda.is_available():
    torch.cuda.manual_seed_all(42)
```

### 5. Using Test Set for Hyperparameter Tuning
**Problem**: Optimizing hyperparameters on test set leads to overfitting to test data.

**Solution**: Use validation set for tuning, test set only for final evaluation:
```python
from sklearn.model_selection import GridSearchCV

# ✅ Correct: Tune on train+val, evaluate on test
param_grid = {'n_estimators': [50, 100, 200], 'max_depth': [5, 10, 15]}
grid_search = GridSearchCV(RandomForestClassifier(), param_grid, cv=5)
grid_search.fit(X_train, y_train)  # Cross-validation on training set
best_model = grid_search.best_estimator_

# Final evaluation on held-out test set
final_score = best_model.score(X_test, y_test)
```

## When to Load References

Load reference files when you need:
- **PyTorch implementation details**: Load `references/pytorch-training.md` for complete training loops with early stopping, learning rate scheduling, and checkpointing
- **TensorFlow/Keras patterns**: Load `references/tensorflow-keras.md` for callback usage, custom training loops, and mobile deployment with TFLite

© secondsky · MIT · secondsky/claude-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой