Крос-валідація
Розділення на навчальну та тестову вибірки має два недоліки:
- Менше навчальних даних, що може знизити якість моделі;
- Залежність від випадкового розділення, що призводить до нестабільних результатів. Щоб уникнути цього, використовується крос-валідація.
Спочатку розділити весь набір даних на 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.
Це допомагає обрати варіант, який стабільно показує найкращі результати.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.13
Крос-валідація
Свайпніть щоб показати меню
Розділення на навчальну та тестову вибірки має два недоліки:
- Менше навчальних даних, що може знизити якість моделі;
- Залежність від випадкового розділення, що призводить до нестабільних результатів. Щоб уникнути цього, використовується крос-валідація.
Спочатку розділити весь набір даних на 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.
Це допомагає обрати варіант, який стабільно показує найкращі результати.
Дякуємо за ваш відгук!