TGViewer
Интеллект в коде: Python, AI, Data Science Интеллект в коде: Python, AI, Data Science @ai_in_progress · 125 subscribers
Post #148 58
Модуль 28.2
🧠 1️⃣ Переобучение и недообучение: что это и чем грозит

Переобучение (overfitting)

Это ситуация, когда модель слишком хорошо "запоминает" обучающие данные, включая шум и случайности, вместо того чтобы научиться общим закономерностям.
📉На обучающей выборке — отличные результаты,
📉 На новых данных (тест) — плохие.
Признаки:
➖Высокая точность на train
➖Низкая точность на test/val
Как распознать?
➖ Accuracy на train ≈ 99%, на test — 60%.
➖ Модель слишком сложная (например, дерево с глубиной 100).
Последствия: плохая обобщающая способность, низкая надежность на практике.

Недообучение (underfitting)
Когда модель слишком простая, чтобы уловить зависимости в данных.
📉 Плохо работает даже на обучающих данных.
Признаки:
➖Низкая точность на train и test
➖Низкая сложность модели (линейная регрессия для сложной зависимости и т.п.)
Как распознать?
➖Низкие метрики и на train, и на test.
➖Модель слишком простая (например, линейная регрессия для нелинейных данных).
Последствия: модель ничего не "понимает" о задаче.

🧪2️⃣Разделение данных: Train / Validation / Test

➖Train (обучающая выборка)
Используется для обучения модели — на этих данных она "учится".
➖Validation (валидационная выборка)
Нужна для оценки модели в процессе настройки (например, подбора гиперпараметров).
Это помогает выбрать лучший вариант до того, как мы "увидим" тестовые данные.

➖Test (тестовая выборка)
Оценивает финальное качество модели. Мы не трогаем её до самого конца, чтобы получить честную оценку того, как модель будет работать в реальности.
from sklearn.model_selection import train_test_split

# Сначала разделим на train и temp (оставим 20% для валидации и теста)
X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.2, random_state=42)

# Потом делим temp пополам на val и test
X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42)


👉 Важно: Test-данные нельзя использовать для обучения или настройки! Это «темная лошадка», которая показывает реальное качество модели.

💱 3️⃣Кросс-валидация: что это и как работает
Кросс-валидация — способ более надежно оценить качество модели, особенно когда данных немного.

Как работает:
➖Данные делятся на k частей (фолдов).
➖Модель обучается на k-1 фолдах, а тестируется на оставшемся.
➖Повторяем это k раз, каждый раз с новой тестовой частью.
➖Считаем среднее значение метрики — это финальная оценка.

from sklearn.model_selection import cross_validate, cross_val_score
from sklearn.linear_model import LogisticRegression

# Загрузка данных
x = ... # Фичи
y = ... # Целевая переменная

# Создаем модель
model = LogisticRegression(random_state=42)

# Оценка с кросс-валидацией (5 фолдов)
results = cross_validate(model, x, y, cv=5, scoring='precision')

# Вывод метрик на каждом фолде
print("Precision на каждом фолде:", results['test_score'])

# Краткая версия (только метрики)
scores = cross_val_score(model, x, y, cv=5, scoring='accuracy')
print("Средняя accuracy:", scores.mean())

Что важно:
— cv=5 — число фолдов (часто берут 5 или 10).
— scoring — метрика (accuracy, precision, recall, F1).

Какие значения можно передавать в scoring
Встроенные метрики (строки-идентификаторы):
- Для классификации: 'accuracy', 'precision', 'recall', 'f1', 'roc_auc'.
- Для регрессии: 'r2', 'neg_mean_squared_error', 'neg_mean_absolute_error'.
Пользовательские функции — если стандартные метрики не подходят.
Список или словарь метрик — в cross_validate (например, ['accuracy', 'precision'])

#Overfitting #Underfitting #CrossValidation #AI_in_Progress
  • 🔥 4
  • 🤔 2
  • 🥰 1
  • 🐳 1
More from @ai_in_progress
  1. Mar 4, 2026Seedance 2.0 теперь стоит копейки. Официальные цены API вышли сегодня! ByteDance только чт…
  2. Mar 2, 2026🔥ГЛАВНЫЕ НОВОСТИ ИИ ЗА СЕГОДНЯ ➖Grok Imagine взорвал всех Новая фича Расширение от кадра…
  3. Mar 1, 2026Seedance 2.0 - модель, о которой сейчас говорят почти все, кто следит за развитием AI-виде…
  4. Feb 28, 2026Небольшое обновление формата канала📊 Изначально этот канал создавался исключительно для м…
  5. Feb 10, 2026Аналитический пайплайн: двигатель, который превращает данные в решения Вы слышали модное «…
  6. Feb 7, 2026С возвращением в мир данных! 🌐 Ваш канал по аналитике снова в активной фазе. Перерыв окон…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →