Встречается на собеседованиях • сегодня

Как детектировать переобучение неитеративного алгоритма

Переобучение в неитеративных алгоритмах (например, деревья решений, случайный лес) можно детектировать несколькими способами:

  1. Разделение данных: используйте train/test split или кросс-валидацию. Если accuracy на тесте сильно ниже, чем на трейне — модель переобучена.

  2. Анализ кривых обучения: постройте график зависимости accuracy от размера обучающей выборки. Если кривые трейна и теста не сходятся — переобучение.

  1. Проверка сложности модели: например, для дерева — глубина. Слишком сложная модель часто переобучается.

Пример для RandomForest:

python
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)

model = RandomForestClassifier(n_estimators=100, max_depth=10)
model.fit(X_train, y_train)

train_acc = accuracy_score(y_train, model.predict(X_train))
test_acc = accuracy_score(y_test, model.predict(X_test))

print(f"Train accuracy: {train_acc:.3f}, Test accuracy: {test_acc:.3f}")
# Если train_acc >> test_acc — переобучение
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы