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

bookОцінювання Моделі

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

Оцінювання моделі вимірює, наскільки точно модель робить прогнози. Для цього використовується метод .score().

Оцінювання продуктивності на навчальній вибірці є хибним, оскільки модель, ймовірно, покаже кращі результати на даних, які вона вже бачила. Для отримання реалістичної оцінки необхідно проводити оцінювання на невідомих даних.

Формальною метою є створення моделі, яка добре узагальнює.

Note
Визначення

Узагальнення — це здатність моделі ефективно працювати з новими, невідомими даними, а не лише з тими, на яких вона навчалася. Це показник того, наскільки точно прогнози моделі можна застосувати до реальних сценаріїв поза межами навчального набору даних.

Цього можна досягти шляхом випадкового розділення набору даних на дві частини: навчальну вибірку для навчання моделі та тестову вибірку для оцінювання.

Навчання моделі на тренувальній вибірці з подальшою оцінкою на тестовій вибірці:

model.fit(X_train, y_train)
print(model.score(X_test, y_test))

Для створення випадкового розбиття даних використовуйте функцію train_test_split() з модуля sklearn.model_selection.

Зазвичай розмір тестової вибірки залежить від розміру датасету: 25–40% для малих наборів, 10–30% для середніх, та менше 10% для великих датасетів.

У цьому прикладі, де лише 342 екземпляри (малий датасет), виділяється 33% для тестової вибірки:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)

Тут X_train та y_train — це тренувальна вибірка, а X_test та y_test — тестова вибірка.

123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import train_test_split 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'] # Train-test split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33) # Initialize and train a model knn5 = KNeighborsClassifier().fit(X_train, y_train) # Trained 5 neighbors model knn1 = KNeighborsClassifier(n_neighbors=1).fit(X_train, y_train) # Trained 1 neighbor model # Print the scores of both models print('5 Neighbors score:',knn5.score(X_test, y_test)) print('1 Neighbor score:',knn1.score(X_test, y_test))
copy

Модель тепер навчена на тренувальному наборі за допомогою .fit(X_train, y_train) та оцінена на тестовому наборі за допомогою .score(X_test, y_test).

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

question mark

Щоб отримати розподіл 67%/33% для тренувального та тестового наборів, ми беремо першу третину рядків як тестовий набір, а решту — як тренувальний. Чи є це твердження правильним?

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Awesome!

Completion rate improved to 3.13

bookОцінювання Моделі

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

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

Оцінювання моделі вимірює, наскільки точно модель робить прогнози. Для цього використовується метод .score().

Оцінювання продуктивності на навчальній вибірці є хибним, оскільки модель, ймовірно, покаже кращі результати на даних, які вона вже бачила. Для отримання реалістичної оцінки необхідно проводити оцінювання на невідомих даних.

Формальною метою є створення моделі, яка добре узагальнює.

Note
Визначення

Узагальнення — це здатність моделі ефективно працювати з новими, невідомими даними, а не лише з тими, на яких вона навчалася. Це показник того, наскільки точно прогнози моделі можна застосувати до реальних сценаріїв поза межами навчального набору даних.

Цього можна досягти шляхом випадкового розділення набору даних на дві частини: навчальну вибірку для навчання моделі та тестову вибірку для оцінювання.

Навчання моделі на тренувальній вибірці з подальшою оцінкою на тестовій вибірці:

model.fit(X_train, y_train)
print(model.score(X_test, y_test))

Для створення випадкового розбиття даних використовуйте функцію train_test_split() з модуля sklearn.model_selection.

Зазвичай розмір тестової вибірки залежить від розміру датасету: 25–40% для малих наборів, 10–30% для середніх, та менше 10% для великих датасетів.

У цьому прикладі, де лише 342 екземпляри (малий датасет), виділяється 33% для тестової вибірки:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)

Тут X_train та y_train — це тренувальна вибірка, а X_test та y_test — тестова вибірка.

123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import train_test_split 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'] # Train-test split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33) # Initialize and train a model knn5 = KNeighborsClassifier().fit(X_train, y_train) # Trained 5 neighbors model knn1 = KNeighborsClassifier(n_neighbors=1).fit(X_train, y_train) # Trained 1 neighbor model # Print the scores of both models print('5 Neighbors score:',knn5.score(X_test, y_test)) print('1 Neighbor score:',knn1.score(X_test, y_test))
copy

Модель тепер навчена на тренувальному наборі за допомогою .fit(X_train, y_train) та оцінена на тестовому наборі за допомогою .score(X_test, y_test).

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

question mark

Щоб отримати розподіл 67%/33% для тренувального та тестового наборів, ми беремо першу третину рядків як тестовий набір, а решту — як тренувальний. Чи є це твердження правильним?

Select the correct answer

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

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

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

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