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

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

Suggested prompts:

Can you explain what each value in the confusion matrix represents?

What is the difference between a false positive and a false negative?

How do I interpret the normalized confusion matrix?

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