“Получите отчет о классификации с помощью Scikit-Learn: комплексное руководство”
В машинном обучении оценка производительности модели классификации имеет решающее значение для понимания ее эффективности. Одним из популярных инструментов для оценки моделей классификации является отчет о классификации, который предоставляет различные показатели, такие как точность, полнота, показатель F1 и поддержка для каждого класса. В этой статье мы рассмотрим различные методы получения отчета о классификации с помощью Scikit-Learn, широко используемой библиотеки машинного обучения на Python.
Содержание:
-
Что такое классификационный отчет?
-
Загрузка набора данных
-
Построение модели классификации
-
Метод 1: использование функции
classification_report
Scikit-Learn -
Метод 2: пользовательская реализация отчета о классификации
-
Метод 3: визуализация отчета о классификации
-
Вывод
-
Ссылки
-
Что такое отчет о классификации?
Отчет о классификации предоставляет исчерпывающую информацию о производительности модели классификации. Он включает в себя такие показатели, как точность, полнота, показатель F1 и поддержка каждого класса в наборе данных. Эти показатели помогают нам понять, насколько хорошо модель работает при прогнозировании каждого класса, и определить потенциальные области для улучшения. -
Загрузка набора данных.
Прежде чем углубляться в методы, давайте начнем с загрузки набора данных в демонстрационных целях. В этой статье мы будем использовать знаменитый набор данных Iris, доступный в Scikit-Learn.
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data
y = iris.target
- Построение модели классификации.
Чтобы получить отчет о классификации, нам нужна обученная модель классификации. Давайте обучим простую модель логистической регрессии, используя классLogisticRegression
Scikit-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. Использование функции
classification_report
Scikit-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)
- Метод 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]}")
- Метод 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()
- В этой статье мы рассмотрели различные методы получения отчета о классификации с помощью Scikit-Learn. Мы обсудили использование встроенной функции
classification_report
Scikit-Learn, создание собственной реализации отчета и визуализацию отчета с помощью таких библиотек, как Matplotlib и Seaborn. Понимание отчета о классификации может помочь нам эффективно оценивать производительность моделей классификации и принимать обоснованные решения в реальных приложениях.
Ссылки:
- Документация Scikit-Learn: https://scikit-learn.org/stable/
- Документация Matplotlib: https://matplotlib.org/