Оцінювання Моделі
Під час створення прогностичної моделі важливо визначити, наскільки добре вона працює, перш ніж використовувати її для реальних прогнозів.
Оцінювання моделі вимірює, наскільки точно модель робить прогнози. Для цього використовується метод .score().
Оцінка продуктивності на навчальній вибірці є хибною, оскільки модель, ймовірно, працюватиме краще на даних, які вона вже бачила. Для отримання реалістичної оцінки необхідно проводити оцінювання на невідомих даних.
Формально метою є створення моделі, яка добре узагальнює.
Узагальнення — це здатність моделі ефективно працювати з новими, невідомими даними, а не лише з тими, на яких вона навчалася. Це показник того, наскільки точно прогнози моделі можна застосувати до реальних сценаріїв поза межами навчального набору даних.
Цього можна досягти шляхом випадкового розділення набору даних на дві частини: навчальну вибірку для навчання моделі та тестову вибірку для оцінювання.
Навчіть модель на тренувальній вибірці, а потім оцініть її на тестовій вибірці:
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 — тестова вибірка.
123456789101112131415import 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))
Модель тепер навчена на тренувальному наборі за допомогою .fit(X_train, y_train) та оцінена на тестовому наборі за допомогою .score(X_test, y_test).
Оскільки train_test_split() розділяє дані випадковим чином, тренувальні та тестові набори відрізняються при кожному запуску, що призводить до різних результатів оцінки. При більшому обсязі даних ці результати стають більш стабільними.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.13
Оцінювання Моделі
Свайпніть щоб показати меню
Під час створення прогностичної моделі важливо визначити, наскільки добре вона працює, перш ніж використовувати її для реальних прогнозів.
Оцінювання моделі вимірює, наскільки точно модель робить прогнози. Для цього використовується метод .score().
Оцінка продуктивності на навчальній вибірці є хибною, оскільки модель, ймовірно, працюватиме краще на даних, які вона вже бачила. Для отримання реалістичної оцінки необхідно проводити оцінювання на невідомих даних.
Формально метою є створення моделі, яка добре узагальнює.
Узагальнення — це здатність моделі ефективно працювати з новими, невідомими даними, а не лише з тими, на яких вона навчалася. Це показник того, наскільки точно прогнози моделі можна застосувати до реальних сценаріїв поза межами навчального набору даних.
Цього можна досягти шляхом випадкового розділення набору даних на дві частини: навчальну вибірку для навчання моделі та тестову вибірку для оцінювання.
Навчіть модель на тренувальній вибірці, а потім оцініть її на тестовій вибірці:
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 — тестова вибірка.
123456789101112131415import 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))
Модель тепер навчена на тренувальному наборі за допомогою .fit(X_train, y_train) та оцінена на тестовому наборі за допомогою .score(X_test, y_test).
Оскільки train_test_split() розділяє дані випадковим чином, тренувальні та тестові набори відрізняються при кожному запуску, що призводить до різних результатів оцінки. При більшому обсязі даних ці результати стають більш стабільними.
Дякуємо за ваш відгук!