Крос-валідація
Свайпніть щоб показати меню
Розділення на навчальну та тестову вибірки має два недоліки:
- Менше навчальних даних, що може знизити якість моделі;
- Залежність від випадкового розділення, що призводить до нестабільних результатів. Щоб уникнути цього, використовується крос-валідація.
Спочатку весь набір даних ділять на 5 рівних частин, які називають фолдами.
Далі використовуйте одну підмножину як тестову вибірку, а решту підмножин об'єднайте для формування навчальної вибірки.
Як і в будь-якому процесі оцінювання, навчальна вибірка використовується для навчання моделі, а тестова вибірка — для оцінки її ефективності.
Процес повторюється так, щоб кожна підмножина один раз виступала тестовим набором, а решта підмножин формували навчальний набір.
Крос-валідація створює кілька показників точності — по одному для кожного розбиття.
Їхнє середнє значення відображає середню ефективність моделі.
У Python це обчислюється за допомогою cross_val_score().
Можна обрати будь-яку кількість фолдів. Наприклад, використання 10 фолдів означає навчання на 9 частинах і тестування на 1.
Це задається через параметр cv у cross_val_score().
1234567891011import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import cross_val_score df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Print the cross-val scores and the mean for KNeighborsClassifier with 5 neighbors scores = cross_val_score(KNeighborsClassifier(), X, y) print(scores) print(scores.mean())
Крос-валідація є надійнішою, але повільнішою, оскільки модель навчається та оцінюється n разів.
Вона широко використовується для налаштування гіперпараметрів, коли крос-валідація повторюється для кожного значення гіперпараметра — наприклад, тестування кількох значень k у k-NN.
Це допомагає обрати варіант, який стабільно показує найкращі результати.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Крос-валідація
Розділення на навчальну та тестову вибірки має два недоліки:
- Менше навчальних даних, що може знизити якість моделі;
- Залежність від випадкового розділення, що призводить до нестабільних результатів. Щоб уникнути цього, використовується крос-валідація.
Спочатку весь набір даних ділять на 5 рівних частин, які називають фолдами.
Далі використовуйте одну підмножину як тестову вибірку, а решту підмножин об'єднайте для формування навчальної вибірки.
Як і в будь-якому процесі оцінювання, навчальна вибірка використовується для навчання моделі, а тестова вибірка — для оцінки її ефективності.
Процес повторюється так, щоб кожна підмножина один раз виступала тестовим набором, а решта підмножин формували навчальний набір.
Крос-валідація створює кілька показників точності — по одному для кожного розбиття.
Їхнє середнє значення відображає середню ефективність моделі.
У Python це обчислюється за допомогою cross_val_score().
Можна обрати будь-яку кількість фолдів. Наприклад, використання 10 фолдів означає навчання на 9 частинах і тестування на 1.
Це задається через параметр cv у cross_val_score().
1234567891011import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import cross_val_score df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Print the cross-val scores and the mean for KNeighborsClassifier with 5 neighbors scores = cross_val_score(KNeighborsClassifier(), X, y) print(scores) print(scores.mean())
Крос-валідація є надійнішою, але повільнішою, оскільки модель навчається та оцінюється n разів.
Вона широко використовується для налаштування гіперпараметрів, коли крос-валідація повторюється для кожного значення гіперпараметра — наприклад, тестування кількох значень k у k-NN.
Це допомагає обрати варіант, який стабільно показує найкращі результати.
Дякуємо за ваш відгук!