Middle — Senior
Как да използваме крос-валидацията за оценка на модел?
sobes.tech AI
Отговор от AI
Крос-валидацията е метод за оценка на качеството на модел за машинно обучение, който помага да се провери колко добре ще работи моделът върху нови данни. Основната идея е да разделите оригиналния набор от данни на няколко части (folds), да обучите модела върху някои части и да го тествате върху останалите.
Най-често срещаният вариант е k-fold крос-валидацията:
- Разделете данните на k равни части.
- За всяка от тези части:
- Обучете модела върху останалите k-1 части.
- Тествайте модела върху текущата част (валидиращ набор).
- Средната стойност на метриките от всички k итерации дава по-надеждна оценка за качеството на модела.
Това помага да се избегне пренасищане и да се получи по-обективна оценка, отколкото просто разделяне на тренировъчни и тестови набори.
Пример на Python с използване на scikit-learn:
from sklearn.model_selection import cross_val_score
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
iris = load_iris()
X, y = iris.data, iris.target
model = RandomForestClassifier()
scores = cross_val_score(model, X, y, cv=5) # 5-кратна крос-валидация
print(f"Средна точност: {scores.mean():.2f}")