Sobes.tech
Middle — Senior

Как да използваме крос-валидацията за оценка на модел?

sobes.tech AI

Отговор от AI

Крос-валидацията е метод за оценка на качеството на модел за машинно обучение, който помага да се провери колко добре ще работи моделът върху нови данни. Основната идея е да разделите оригиналния набор от данни на няколко части (folds), да обучите модела върху някои части и да го тествате върху останалите.

Най-често срещаният вариант е k-fold крос-валидацията:

  1. Разделете данните на k равни части.
  2. За всяка от тези части:
    • Обучете модела върху останалите k-1 части.
    • Тествайте модела върху текущата част (валидиращ набор).
  3. Средната стойност на метриките от всички 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}")