Встречается на собеседованиях • сегодня
Как детектировать переобучение неитеративного алгоритма
Переобучение в неитеративных алгоритмах (например, деревья решений, случайный лес) можно детектировать несколькими способами:
-
Разделение данных: используйте train/test split или кросс-валидацию. Если accuracy на тесте сильно ниже, чем на трейне — модель переобучена.
-
Анализ кривых обучения: постройте график зависимости accuracy от размера обучающей выборки. Если кривые трейна и теста не сходятся — переобучение.
- Проверка сложности модели: например, для дерева — глубина. Слишком сложная модель часто переобучается.
Пример для 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 — переобучение
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы