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

bookМатриця Плутанини

Під час здійснення передбачення для задачі бінарної класифікації існує лише чотири можливі результати:

На зображенні вище фактичні значення (істинні мітки) впорядковані зверху вниз у спадному порядку, а передбачені значення впорядковані зліва направо у зростаючому порядку. Це стандартне розташування, яке використовується у scikit-learn для відображення матриць плутанини.

Note
Примітка

Різні бібліотеки або візуалізації можуть використовувати інше розташування — наприклад, розміщувати фактичні значення на осі x, а передбачені значення на осі y. Однак відмінність полягає лише у розташуванні; значення у матриці залишаються незмінними.

Ці результати називаються істинно позитивний (TP), істинно негативний (TN), хибно позитивний (FP) та хибно негативний (FN). "істинно" або "хибно" вказує, чи є передбачення правильним, а "позитивний" або "негативний" стосується того, чи є передбачений клас 1 або 0.

Це означає, що існує два типи помилок: хибно позитивні та хибно негативні. Хибно позитивне передбачення також відоме як помилка 1 типу, а хибно негативне передбачення називають помилкою 2 типу.

Матриця плутанини

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

Ви можете побудувати матрицю плутанини в Python за допомогою функції confusion_matrix() з пакету sklearn:

from sklearn.metrics import confusion_matrix

conf_matrix = confusion_matrix(y_true, y_pred)

Для кращої візуалізації можна використати функцію heatmap() з пакету seaborn:

sns.heatmap(conf_matrix)

Ось приклад обчислення матриці плутанини для прогнозу Random Forest на наборі даних Titanic:

12345678910111213141516
import pandas as pd import seaborn as sns from sklearn.metrics import confusion_matrix from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split # Read the data and assign the variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/titanic.csv') X, y = df.drop('Survived', axis=1), df['Survived'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1) # Build and train a Random Forest and predict target for a test set random_forest = RandomForestClassifier().fit(X_train, y_train) y_pred = random_forest.predict(X_test) # Build a confusion matrix conf_matrix = confusion_matrix(y_test, y_pred) sns.heatmap(conf_matrix, annot=True);
copy

Можна також побудувати відсоткові значення замість кількості екземплярів, використовуючи параметр normalize:

conf_matrix = confusion_matrix(y_true, y_pred, normalize='all')
12345678910111213141516
import pandas as pd import seaborn as sns from sklearn.metrics import confusion_matrix from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split # Read the data and assign the variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/titanic.csv') X, y = df.drop('Survived', axis=1), df['Survived'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1) # Build and train a Random Forest and predict target for a test set random_forest = RandomForestClassifier().fit(X_train, y_train) y_pred = random_forest.predict(X_test) # Build a confusion matrix conf_matrix = confusion_matrix(y_test, y_pred, normalize='all') sns.heatmap(conf_matrix, annot=True);
copy
question mark

Яке призначення матриці плутанини?

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Awesome!

Completion rate improved to 4.17

bookМатриця Плутанини

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

Під час здійснення передбачення для задачі бінарної класифікації існує лише чотири можливі результати:

На зображенні вище фактичні значення (істинні мітки) впорядковані зверху вниз у спадному порядку, а передбачені значення впорядковані зліва направо у зростаючому порядку. Це стандартне розташування, яке використовується у scikit-learn для відображення матриць плутанини.

Note
Примітка

Різні бібліотеки або візуалізації можуть використовувати інше розташування — наприклад, розміщувати фактичні значення на осі x, а передбачені значення на осі y. Однак відмінність полягає лише у розташуванні; значення у матриці залишаються незмінними.

Ці результати називаються істинно позитивний (TP), істинно негативний (TN), хибно позитивний (FP) та хибно негативний (FN). "істинно" або "хибно" вказує, чи є передбачення правильним, а "позитивний" або "негативний" стосується того, чи є передбачений клас 1 або 0.

Це означає, що існує два типи помилок: хибно позитивні та хибно негативні. Хибно позитивне передбачення також відоме як помилка 1 типу, а хибно негативне передбачення називають помилкою 2 типу.

Матриця плутанини

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

Ви можете побудувати матрицю плутанини в Python за допомогою функції confusion_matrix() з пакету sklearn:

from sklearn.metrics import confusion_matrix

conf_matrix = confusion_matrix(y_true, y_pred)

Для кращої візуалізації можна використати функцію heatmap() з пакету seaborn:

sns.heatmap(conf_matrix)

Ось приклад обчислення матриці плутанини для прогнозу Random Forest на наборі даних Titanic:

12345678910111213141516
import pandas as pd import seaborn as sns from sklearn.metrics import confusion_matrix from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split # Read the data and assign the variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/titanic.csv') X, y = df.drop('Survived', axis=1), df['Survived'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1) # Build and train a Random Forest and predict target for a test set random_forest = RandomForestClassifier().fit(X_train, y_train) y_pred = random_forest.predict(X_test) # Build a confusion matrix conf_matrix = confusion_matrix(y_test, y_pred) sns.heatmap(conf_matrix, annot=True);
copy

Можна також побудувати відсоткові значення замість кількості екземплярів, використовуючи параметр normalize:

conf_matrix = confusion_matrix(y_true, y_pred, normalize='all')
12345678910111213141516
import pandas as pd import seaborn as sns from sklearn.metrics import confusion_matrix from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split # Read the data and assign the variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/titanic.csv') X, y = df.drop('Survived', axis=1), df['Survived'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1) # Build and train a Random Forest and predict target for a test set random_forest = RandomForestClassifier().fit(X_train, y_train) y_pred = random_forest.predict(X_test) # Build a confusion matrix conf_matrix = confusion_matrix(y_test, y_pred, normalize='all') sns.heatmap(conf_matrix, annot=True);
copy
question mark

Яке призначення матриці плутанини?

Select the correct answer

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

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

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

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