481просмотров
9.6%от подписчиков
22 марта 2026 г.
questionScore: 529
🤔 Как выбрать сплит? Выбор метода разделения (сплита) данных является важным этапом при построении моделей машинного обучения. Правильный выбор сплита позволяет добиться более точных и обобщающих моделей. 🚩Методы 🟠Holdout Method (Метод отложенного набора) Данные делятся на две части: обучающая выборка (train set) и тестовая выборка (test set). Обычно деление производится в пропорции 70/30 или 80/20. Когда у вас достаточно большой набор данных.Для быстрой оценки производительности модели. from sklearn.model_selection import train_test_split # Исходные данные X = ... y = ... # Деление данных на обучающую и тестовую выборки X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) 🟠K-Fold Cross-Validation (K-кратная кросс-валидация) Данные делятся на K частей (фолдов). Модель обучается K раз, каждый раз используя K-1 частей для обучения и одну часть для тестирования. Результаты оцениваются как среднее значение по всем фолдам. Когда нужно уменьшить влияние случайности, особенно при небольшом объеме данных. Для более надежной оценки производительности модели. from sklearn.model_selection import cross_val_score from sklearn.ensemble import RandomForestClassifier # Исходные данные X = ... y = ... # Модель model = RandomForestClassifier() # K-кратная кросс-валидация scores = cross_val_score(model, X, y, cv=5) print(f"Средняя точность: {scores.mean()}") 🟠Stratified K-Fold Cross-Validation (Стратифицированная K-кратная кросс-валидация) Подобно K-Fold Cross-Validation, но деление на фолды производится таким образом, чтобы в каждом фолде сохранялись пропорции классов, как в исходных данных. Для задач классификации, особенно при наличии несбалансированных классов. from sklearn.model_selection import StratifiedKFold from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import cross_val_score # Исходные данные X = ... y = ... # Стратифицированная K-кратная кросс-валидация skf = StratifiedKFold(n_splits=5) model = RandomForestClassifier() scores = cross_val_score(model, X, y, cv=skf) print(f"Средняя точность: {scores.mean()}") 🟠Leave-One-Out Cross-Validation (LOOCV) Частный случай K-Fold Cross-Validation, где K равно количеству образцов в данных. Каждый раз модель обучается на всех образцах, кроме одного, который используется для тестирования. При очень небольших наборах данных, где важно использовать как можно больше данных для обучения. from sklearn.model_selection import LeaveOneOut from sklearn.linear_model import LogisticRegression from sklearn.model_selection import cross_val_score # Исходные данные X = ... y = ... # LOOCV loo = LeaveOneOut() model = LogisticRegression() scores = cross_val_score(model, X, y, cv=loo) print(f"Средняя точность: {scores.mean()}") Ставь 👍 и забирай 📚 Базу знаний
481
просмотров
2806
символов
Да
эмодзи
Нет
медиа

Другие посты @easy_ds

Все посты канала →