Крос-валідація

Кероване навчання зі scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Навіщо крос-валідація

  • Якість моделі залежить від способу поділу даних

  • Це не відображає здатність моделі узагальнювати на нові дані

  • Рішення: крос-валідація!

Кероване навчання зі scikit-learn

Основи крос-валідації

заголовки таблиці: split 1, fold 1, fold 2, fold 3, fold 4 та fold 5

Кероване навчання зі scikit-learn

Основи крос-валідації

split 1 зарезервовано як тестовий набір

Кероване навчання зі scikit-learn

Основи крос-валідації

складки 2–5 використано як навчальні дані

Кероване навчання зі scikit-learn

Основи крос-валідації

обчисліть метрику на цих складках

Кероване навчання зі scikit-learn

Основи крос-валідації

Складка 2 як тестові дані

Кероване навчання зі scikit-learn

Основи крос-валідації

складки 1, 3, 4 і 5 як навчальні дані

Кероване навчання зі scikit-learn

Основи крос-валідації

знову обчисліть метрику

Кероване навчання зі scikit-learn

Основи крос-валідації

повторіть із третьою складкою

Кероване навчання зі scikit-learn

Основи крос-валідації

повторіть із четвертою складкою

Кероване навчання зі scikit-learn

Основи крос-валідації

повторіть із п'ятою складкою

Кероване навчання зі scikit-learn

Крос-валідація й якість моделі

  • 5 складок = 5-fold CV

  • 10 складок = 10-fold CV

  • k складок = k-fold CV

  • Більше складок = вища обчислювальна вартість

Кероване навчання зі scikit-learn

Крос-валідація в scikit-learn

from sklearn.model_selection import cross_val_score, KFold

kf = KFold(n_splits=6, shuffle=True, random_state=42)
reg = LinearRegression()
cv_results = cross_val_score(reg, X, y, cv=kf)
Кероване навчання зі scikit-learn

Оцінювання результатів крос-валідації

print(cv_results)
[0.70262578, 0.7659624, 0.75188205, 0.76914482, 0.72551151, 0.73608277]
print(np.mean(cv_results), np.std(cv_results))
0.7418682216666667 0.023330243960652888
print(np.quantile(cv_results, [0.025, 0.975]))
array([0.7054865, 0.76874702])
Кероване навчання зі scikit-learn

Давайте потренуємось!

Кероване навчання зі scikit-learn

Preparing Video For Download...