Я не буду много писать здесь, потому что содержание почти такое же, как и в посте о задаче регрессии. Нам нужно только добавить новый шаг, который кодирует категориальную переменную в числовую, если она не является числовой.

В этом посте я буду использовать набор данных гендерной классификации. Он содержит восемь столбцов с полом в качестве цели. Вы можете получить доступ к набору данных здесь. Это шаг за шагом.

1. Импортируйте необходимые библиотеки

# Data processing
import pandas as pd
from sklearn.model_selection import train_test_split

# Model
from sklearn.linear_model import LogisticRegression

# Evaluation
from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report

2. Подготовьте набор данных

  • Чтение данных
data = pd.read_csv("/kaggle/input/gender-classification-dataset/gender_classification_v7.csv")
data.head()
  • Кодировать целевую переменную
gender_map = {
    'Male': 1,
    'Female': 0
}

data['gender'] = data['gender'].map(gender_map)

3. Разделение набора данных на обучение и проверку

features = [col for col in data.columns if col != 'gender']
target = ['gender']

X_train, X_val, y_train, y_val = train_test_split(data[features], data[target], test_size=0.2)

4. Подготовьте модели. Теперь я буду использовать модель LogisticRegression. В sklearn есть много других моделей классификаторов, вы можете прочитать документацию на веб-сайте sklearn.

# Initialize Model
logreg = LogisticRegression()

# Train Model
logreg.fit(X_train, y_train)

5. Оценка

  • Создать прогноз
y_pred = logreg.predict(X_val)
  • Оценка эффективности
print('confusion matrix')
print(confusion_matrix(y_val, y_pred))
print()
print('classification report')
print(classification_report(y_val, y_pred))

Полный код вы можете найти здесь.

Так просто, да? На этом пока все, в следующий раз напишу интересное, следите за новостями. Спасибо за чтение :)