Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Крос-валідація | Моделювання
Вступ до машинного навчання з Python

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

Розділення на навчальну та тестову вибірки має два недоліки:

  1. Менше навчальних даних, що може знизити якість моделі;
  2. Залежність від випадкового розділення, що призводить до нестабільних результатів. Щоб уникнути цього, використовується крос-валідація.

Спочатку розділити весь набір даних на 5 рівних частин, які називаються фолдами.

Далі використовувати один фолд як тестову вибірку та об'єднати решту фолдів для формування навчальної вибірки.

Як і в будь-якому процесі оцінювання, навчальна вибірка використовується для навчання моделі, а тестова вибірка — для вимірювання її ефективності.

Процес повторюється так, щоб кожна складка один раз виступала як тестова вибірка, а решта складок формують навчальну вибірку.

Крос-валідація створює кілька показників точності — по одному для кожного розбиття. Їхнє середнє значення відображає середню ефективність моделі. У Python це обчислюється за допомогою cross_val_score().

Note
Примітка

Можна обрати будь-яку кількість фолдів. Наприклад, використання 10 фолдів означає навчання на 9 частинах і тестування на 1. Це задається через параметр cv у функції cross_val_score().

1234567891011
import 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())
copy

Крос-валідація є надійнішою, але повільнішою, оскільки модель навчається та оцінюється n разів. Широко використовується для налаштування гіперпараметрів, коли крос-валідація повторюється для кожного значення гіперпараметра — наприклад, тестування кількох значень k у k-NN. Це допомагає обрати варіант, який стабільно показує найкращі результати.

question mark

Чому для оцінки ефективності моделі машинного навчання може віддаватися перевага крос-валідації над розділенням на навчальну та тестову вибірки?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 4

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 3.13

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

Свайпніть щоб показати меню

Розділення на навчальну та тестову вибірки має два недоліки:

  1. Менше навчальних даних, що може знизити якість моделі;
  2. Залежність від випадкового розділення, що призводить до нестабільних результатів. Щоб уникнути цього, використовується крос-валідація.

Спочатку розділити весь набір даних на 5 рівних частин, які називаються фолдами.

Далі використовувати один фолд як тестову вибірку та об'єднати решту фолдів для формування навчальної вибірки.

Як і в будь-якому процесі оцінювання, навчальна вибірка використовується для навчання моделі, а тестова вибірка — для вимірювання її ефективності.

Процес повторюється так, щоб кожна складка один раз виступала як тестова вибірка, а решта складок формують навчальну вибірку.

Крос-валідація створює кілька показників точності — по одному для кожного розбиття. Їхнє середнє значення відображає середню ефективність моделі. У Python це обчислюється за допомогою cross_val_score().

Note
Примітка

Можна обрати будь-яку кількість фолдів. Наприклад, використання 10 фолдів означає навчання на 9 частинах і тестування на 1. Це задається через параметр cv у функції cross_val_score().

1234567891011
import 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())
copy

Крос-валідація є надійнішою, але повільнішою, оскільки модель навчається та оцінюється n разів. Широко використовується для налаштування гіперпараметрів, коли крос-валідація повторюється для кожного значення гіперпараметра — наприклад, тестування кількох значень k у k-NN. Це допомагає обрати варіант, який стабільно показує найкращі результати.

question mark

Чому для оцінки ефективності моделі машинного навчання може віддаватися перевага крос-валідації над розділенням на навчальну та тестову вибірки?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 4
some-alt