Получите отчет о классификации с помощью Scikit-Learn: комплексное руководство

“Получите отчет о классификации с помощью Scikit-Learn: комплексное руководство”

В машинном обучении оценка производительности модели классификации имеет решающее значение для понимания ее эффективности. Одним из популярных инструментов для оценки моделей классификации является отчет о классификации, который предоставляет различные показатели, такие как точность, полнота, показатель F1 и поддержка для каждого класса. В этой статье мы рассмотрим различные методы получения отчета о классификации с помощью Scikit-Learn, широко используемой библиотеки машинного обучения на Python.

Содержание:

  1. Что такое классификационный отчет?

  2. Загрузка набора данных

  3. Построение модели классификации

  4. Метод 1: использование функции classification_reportScikit-Learn

  5. Метод 2: пользовательская реализация отчета о классификации

  6. Метод 3: визуализация отчета о классификации

  7. Вывод

  8. Ссылки

  9. Что такое отчет о классификации?
    Отчет о классификации предоставляет исчерпывающую информацию о производительности модели классификации. Он включает в себя такие показатели, как точность, полнота, показатель F1 и поддержка каждого класса в наборе данных. Эти показатели помогают нам понять, насколько хорошо модель работает при прогнозировании каждого класса, и определить потенциальные области для улучшения.

  10. Загрузка набора данных.
    Прежде чем углубляться в методы, давайте начнем с загрузки набора данных в демонстрационных целях. В этой статье мы будем использовать знаменитый набор данных Iris, доступный в Scikit-Learn.

from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data
y = iris.target
  1. Построение модели классификации.
    Чтобы получить отчет о классификации, нам нужна обученная модель классификации. Давайте обучим простую модель логистической регрессии, используя класс LogisticRegressionScikit-Learn.
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Train the logistic regression model
model = LogisticRegression()
model.fit(X_train, y_train)
  1. Метод 1. Использование функции classification_reportScikit-Learn:
    Scikit-Learn предоставляет встроенную функцию classification_reportв metrics. модуль, который напрямую вычисляет отчет о классификации для заданной модели и тестовых данных.
from sklearn.metrics import classification_report
# Generate predictions on the test set
y_pred = model.predict(X_test)
# Compute the classification report
report = classification_report(y_test, y_pred)
# Print the classification report
print(report)
  1. Метод 2: Пользовательская реализация отчета о классификации.
    Если вы хотите настроить отчет о классификации или извлечь определенные показатели, вы можете создать свою собственную реализацию, используя precision_score, Scikit-Learn. 13и f1_scoreфункций.
from sklearn.metrics import precision_score, recall_score, f1_score
# Generate predictions on the test set
y_pred = model.predict(X_test)
# Calculate precision, recall, and F1-score for each class
precision = precision_score(y_test, y_pred, average=None)
recall = recall_score(y_test, y_pred, average=None)
f1 = f1_score(y_test, y_pred, average=None)
# Print the metrics for each class
for cls in range(len(precision)):
    print(f"Class {cls}: Precision={precision[cls]}, Recall={recall[cls]}, F1-score={f1[cls]}")
  1. Метод 3. Визуализация отчета о классификации.
    Иногда визуализация отчета о классификации может обеспечить более интуитивное понимание эффективности модели. Вы можете использовать библиотеки, такие как Matplotlib или Seaborn, для создания визуального представления отчета о классификации.
import matplotlib.pyplot as plt
import seaborn as sns
# Generate predictions on the test set
y_pred = model.predict(X_test)
# Compute the classification report
report = classification_report(y_test, y_pred, output_dict=True)
# Convert the report to a DataFrame for visualization
df_report = pd.DataFrame(report).transpose()
# Plot the precision, recall, and F1-score for each class
sns.heatmap(df_report.iloc[:, :-1], annot=True, cmap="Blues", cbar=False)
plt.title("Classification Report Heatmap")
plt.xlabel("Metrics")
plt.ylabel("Classes")
plt.show()
  1. В этой статье мы рассмотрели различные методы получения отчета о классификации с помощью Scikit-Learn. Мы обсудили использование встроенной функции classification_reportScikit-Learn, создание собственной реализации отчета и визуализацию отчета с помощью таких библиотек, как Matplotlib и Seaborn. Понимание отчета о классификации может помочь нам эффективно оценивать производительность моделей классификации и принимать обоснованные решения в реальных приложениях.

Ссылки: