К основному содержанию
правило

xgboost — правило для Cursor: что делает и как установить

Задаёт стандарты работы с библиотекой xgboost в Python: однократную сборку DMatrix, выбор tree_method='hist' и оформление докстрингов по стилю NumPy.

Установить в Cursor · Вручную: положить файлы Все способы и платформы ↓
.cursor/rules/xgboost.mdc
Открыть на GitHub

Что делает xgboost

Правило настраивает Cursor на генерацию Python-кода для библиотеки xgboost с фильтром по файлам **/*.py. Оно предписывает разделять подготовку данных и логику обучения, а также следовать стандарту PEP 8 вместе с NumPy-оформлением документации.

Инструкция запрещает многократное создание xgboost.DMatrix: данные переводятся в матрицу один раз перед началом тренировки. Для ускорения вычислений по умолчанию задаётся алгоритм tree_method='hist', а при наличии GPU подключается параметр device='cuda'.

Для интеграции со стандартными конвейерами scikit-learn используются классы XGBClassifier и XGBRegressor с параметром enable_categorical=True. Нативный вызов xgboost.train остаётся для задач с нестандартными функциями потерь и прямым управлением бустером.

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

  • избежать лишней конвертации данных в DMatrix перед обучением
  • включить быстрый алгоритм tree_method='hist' в параметрах модели
  • оформить функции обучения с типами и docstring по стандарту NumPy
  • активировать нативную поддержку категориальных признаков через enable_categorical

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

  • Напиши функцию обучения XGBClassifier с включённой обработкой категориальных признаков
  • Собери тренировочный скрипт на нативном xgboost.train с объектом DMatrix и валидационной выборкой

Как установить xgboost

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

.cursor/rules/xgboost.mdc

Во frontmatter: description, globs, alwaysApply

По шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules

Вопросы о xgboost

Как установить правило xgboost в Cursor?

Создайте в проекте файл .cursor/rules/xgboost.mdc и скопируйте в него текст правила.

Что делает правило xgboost?

Оно направляет генерацию кода в Cursor по стандартам xgboost: требует ранней сборки DMatrix и алгоритма hist.

Когда использовать интерфейс Scikit-learn, а когда нативный xgboost.train?

Классы XGBClassifier и XGBRegressor нужны для связки с Pipeline или GridSearchCV, тогда как xgboost.train выбирают ради кастомных метрик и прямого доступа к бустеру.

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

xgboost.mdc · CC0-1.0
---
description: Definitive guidelines for writing robust, performant, and maintainable Python code using the xgboost library, focusing on modern best practices and common pitfalls.
globs: **/*.py
---
# xgboost Best Practices

This document outlines the definitive coding standards and best practices for developing with `xgboost` in Python. Adhering to these guidelines ensures your code is efficient, scalable, maintainable, and aligned with the project's official recommendations and modern ML workflows.

## 1. Code Organization and Structure

Organize your `xgboost` code for clarity, reusability, and maintainability. Separate concerns: data preparation, model definition, training, evaluation, and logging.

### 1.1. Modularity with `DMatrix` and `Booster`

For optimal performance and control, especially with large datasets or custom objectives, use `xgboost.DMatrix` for data handling and `xgboost.Booster` for the core model. This separates data management from model logic.

**❌ BAD: Repeatedly converting data**
```python
import xgboost as xgb
import pandas as pd
from sklearn.model_selection import train_test_split

# Assume X, y are loaded
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# Inefficient for repeated operations or large datasets
model = xgb.train(
    {'objective': 'binary:logistic'},
    xgb.DMatrix(X_train, label=y_train),
    num_boost_round=100
)
# Later, if you need to retrain or predict:
model.predict(xgb.DMatrix(X_test)) # Another conversion
```

**✅ GOOD: Pre-process data into `DMatrix` once**
```python
import xgboost as xgb
import pandas as pd
from sklearn.model_selection import train_test_split

# Assume X, y are loaded
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Convert data to DMatrix once for efficiency
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)

params = {
    'objective': 'binary:logistic',
    'eval_metric': 'logloss',
    'tree_method': 'hist', # Modern, faster tree method
    'device': 'cuda' # Leverage GPU if available
}

model = xgb.train(
    params,
    dtrain,
    num_boost_round=100,
    evals=[(dtrain, 'train'), (dtest, 'eval')]
)
preds = model.predict(dtest)
```

### 1.2. Adhere to Python Style Guides

Follow [PEP 8](https://www.python.org/dev/peps/pep-0008/) for code style and use [NumPy-style docstrings](https://numpydoc.readthedocs.io/en/latest/format.html) for all functions and classes. This is enforced by `xgboost`'s own contribution guidelines.

**❌ BAD: Inconsistent formatting, missing docstrings**
```python
def train_model(X,y):
    model=xgb.XGBClassifier()
    model.fit(X,y)
    return model
```

**✅ GOOD: PEP 8 compliant, NumPy-style docstrings**
```python
import xgboost as xgb
import numpy as np
from typing import Tuple

def train_xgboost_classifier(
    X_train: np.ndarray, y_train: np.ndarray, n_estimators: int = 100
) -> xgb.XGBClassifier:
    """
    Trains an XGBoost classifier model.

    Parameters
    ----------
    X_train : np.ndarray
        Training features.
    y_train : np.ndarray
        Training labels.
    n_estimators : int, optional
        Number of boosting rounds, by default 100.

    Returns
    -------
    xgb.XGBClassifier
        The trained XGBoost classifier model.
    """
    model = xgb.XGBClassifier(n_estimators=n_estimators, tree_method='hist', random_state=42)
    model.fit(X_train, y_train)
    return model
```

## 2. Common Patterns and Anti-patterns

### 2.1. Scikit-learn API vs. Native API

Use the Scikit-learn API (`XGBClassifier`, `XGBRegressor`) for seamless integration into standard ML pipelines (e.g., `GridSearchCV`, `Pipeline`). Opt for the native `xgboost.train` API when you need fine-grained control, custom objectives/metrics, or to leverage `DMatrix` features like external memory.

**✅ GOOD: Scikit-learn API for standard use cases**
```python
from xgboost import XGBClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.datasets import make_classification

X, y = make_classification(n_samples=1000, n_features=20, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

model = XGBClassifier(
    n_estimators=100,
    learning_rate=0.1,
    max_depth=5,
    tree_method='hist', # Always prefer 'hist'
    enable_categorical=True, # Enable native categorical support
    random_state=42
)
model.fit(X_train, y_train)
preds = model.predict(X_test)
print(f"Accuracy: {accuracy_score(y_test, preds):.4f}")
```

**✅ GOOD: Native API for advanced control (e.g., custom objective, `DMatrix` features)**
```python
import xgboost as xgb
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.datasets import make_regression
from typing import Tuple

© sanjeed5 · CC0-1.0 · sanjeed5/awesome-cursor-rules-mdc

Похожие правила IDE

Все правила IDE по теме «ИИ и ML» →
data-scientist VoltAgent Community Субагент для разведочного анализа данных, проверки гипотез и обучения моделей машинного обучения прямо в Claude Code. 3 342установок senior-data-scientist Alireza Rezvani Скилл для Claude Code, который ведёт расчёт A/B-тестов, причинный анализ и оценку моделей на Python, R и SQL. 942установок typespec-m365-copilot официальный github Правило подсказывает, как описывать агентов и API-плагины Microsoft 365 Copilot на TypeSpec. Срабатывает при работе с файлами .tsp. ★ 40 478звёзд репо python-mcp-server официальный github Набор инструкций для GitHub Copilot по разработке MCP-серверов на Python SDK версии 2. Помогает ассистенту писать код по спецификации 2026-07-28 без устаревших методов. ★ 40 478звёзд репо microsoft-foundry официальный github Правило направляет GitHub Copilot при создании агентов Microsoft Foundry на Python SDK v2 и предотвращает генерацию устаревшего API. ★ 40 478звёзд репо langchain-python официальный github Правило для GitHub Copilot, которое подсказывает агенту паттерны LangChain: Runnable, LCEL, чат-модели, ретриверы и векторные хранилища. Пригодится, если вы пишете на Python с LangChain. ★ 40 478звёзд репо java-mcp-server официальный github Набор инструкций для разработки MCP-серверов на Java с официальным MCP Java SDK 2.x. Помогает настроить сборку, транспорт и регистрацию инструментов. ★ 40 478звёзд репо go-mcp-server официальный github Правило помогает писать MCP-серверы на Go с официальным SDK: описывает инструменты, ресурсы, промпты, транспорт и обработку ошибок. ★ 40 478звёзд репо

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

Весь набор →
zustand Задаёт правила архитектуры хранилищ Zustand в React: типизацию стейта, деление на слайсы, селекторы и защиту от устаревших замыканий. ★ 3 580звёзд репо zsh Правило задаёт единый стиль для Zsh-скриптов и конфигурации в Cursor. Оно пригодится для проверок, читаемости и безопасной работы с оболочкой. ★ 3 580звёзд репо zod Правило для Cursor задаёт стандарты работы с Zod: строгий режим TypeScript, вывод типов из схем и проверка данных на входе. ★ 3 580звёзд репо webpack Правило подсказывает Cursor, как организовать webpack-конфигурацию и настроить сборку. Пригодится при работе с JavaScript-проектом, где нужны отдельные настройки для разработки и production. ★ 3 580звёзд репо vue3 Правило задаёт агенту Cursor единый стиль для Vue 3: Composition API, TypeScript, ESLint и Prettier. Пригодится, если в проекте несколько разработчиков и код должен выглядеть одинаково. ★ 3 580звёзд репо vllm Правило задаёт рекомендации для Python-кода с vLLM: настройка окружения, организация инференса, производительность и наблюдаемость. Пригодится при разработке сервиса генерации на GPU. ★ 3 580звёзд репо vitest Правило задаёт Cursor, как писать юнит- и интеграционные тесты на Vitest: где держать файлы, как изолировать кейсы и мокать модули. ★ 3 580звёзд репо vite Задаёт стандарты проектов на Vite: требует чистый конфиг, прямой импорт модулей без barrel-файлов и использование import.meta.env. ★ 3 580звёзд репо

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

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