Когда вы слышите слово классифицировать, на ум приходит группа вещей, основанная на их различиях. То же самое относится и к машинному обучению, основанному на функциях и собранных данных, модель машинного обучения может научиться различать разные классы с помощью различных шаблонов, обнаруженных моделью машинного обучения. В этой статье вы узнаете, как построить модель машинного обучения с контролируемой классификацией.
Набор данных, который будет использоваться, представляет собой загруженный набор данных, полученный от kaggle. Модель, которую мы обучаем в этой статье, сможет предсказать возможность того, что человек погасит свой кредит, исходя из их обстоятельств, Y — для одобрения кредита, а N — для отказа в кредите.

Обучение модели.

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

import numpy as np
import pandas as pd
import matplotlib as plt
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import ConfusionMatrixDisplay, confusion_matrix, classification_report
import seaborn as sns

Мы импортируем Numpy, библиотеку на основе Python, используемую для числовых расчетов.
Pandas: чтобы прочитать набор данных и сохранить его в формате фрейма данных для выполнения анализа, очистка и некоторые вычисления во фрейме данных.
Sklearn: также известная как Scikit-learn, одна из самых популярных библиотек, содержащая несколько классов и некоторые функции для анализа и машинного обучения. модели, одну из которых мы будем использовать в статье — классификатор случайного леса. Модель классификатора случайного леса — это очень мощная модель классификации, которая может обеспечить высокую точность с небольшой настройкой гиперпараметров или без нее.

Чтение данных.

Используя библиотеку pandas, которая была импортирована как «pd», мы импортируем набор данных, используя путь к файлу набора данных.
df=pd.read_csv('/Users/user/Documents/loan_sanction_train.csv')

Чтобы проверить, правильно ли вы импортировали файл, введите:
df.head()
Вывод:

Экспозиционный анализ данных

Давайте узнаем больше о наших данных, прежде чем мы начнем обучать модель.
df.info()
Вывод:

Сверху выводим наличие 614 строк и 13 столбцов. Мы также можем видеть, что в них отсутствуют некоторые значения, чтобы увидеть количество значений, отсутствующих в каждом столбце, используйте
df.isnull().sum()
Вывод:

Мы обсудим, как обрабатывать отсутствующие значения, в следующих статьях, а пока давайте отбросим все строки с отсутствующими значениями.
df=df.dropna()
Мы можем получить сводку статистических значений, которая включает среднее значение, минимальное значение, максимальное значение. значение, стандартное отклонение, 25-й процентиль, 50-й процентиль (средний), 75-й процентиль и количество числовых столбцов в распределении.
df.describe()
Вывод:

Очистка и подготовка данных

Модели машинного обучения принимают только числовые и логические значения (истина или ложь), поэтому в наших функциях или столбцах нам потребуется преобразовать все строки или объекты в целые числа, числа с плавающей запятой или логические значения.
Мы можем проверить различные категории в функции с кодом.
Пример:
df['Property_Area'].value_counts()
Вывод:

Затем мы можем преобразовать все функции, которые не являются числовыми или логическими, создав функцию, вызвав df.astype("category").cat.codes и передав через нее кадр данных и столбцы.
def category_val(df,col):
df[col]=df[col].astype('category')
df[col]=df[col].cat.codes
return df[col]
df['Gender']=category_val(df,'Gender')
df['Married']=category_val(df,'Married')
df['Education']=category_val(df,'Education')
df['Property_Area']=category_val(df,'Property_Area')
df['Self_Employed']=category_val(df,'Self_Employed')
df['Dependents']=category_val(df,'Dependents')

Вы можете подтвердить с помощью функции value_counts, чтобы увидеть ваши новые категориальные значения.
df['Property_Area'].value_counts()
Вывод:

Построение модели

Теперь, когда мы немного очистили наши данные, давайте разделим функции и целевую переменную, скажем, x — наши функции, а y — наша цель.

x= df.drop(['Loan_ID','Loan_Status'], axis =1)
y=df['Loan_Status']

Мы используем функцию dataframe.drop, чтобы удалить функцию, которая не будет использоваться, и целевую функцию, затем мы собираем целевую функцию в y.

Затем мы разделим наши данные на обучающий набор и тестовый набор. Чтобы проверить, как наша модель будет работать на некоторых реальных данных, мы используем тестовое разделение, мы делим наш набор данных на обучающий набор и тестовый набор. Мы обучаем нашу модель с помощью тренировочного набора и оцениваем, как она работает на тестовом наборе.
Чтобы разделить нашу модель, мы используем функцию train_test_split, установив размер нашего теста на 30% (обычно рекомендуется использовать 20%-30%). нашего набора данных для тестового набора, чтобы не потерять слишком много данных при обучении модели).

x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=True)

Затем мы загружаем нашу модель классификации для использования, которая в данном случае является классификатором случайного леса. параметры.

Затем модель случайного леса состоит из нескольких деревьев решений, которые создают тысячи ветвей по функциям и оценивают результаты.
rf=RandomForestClassifier()
После загрузки нашей модели мы подгоняем обучающий набор к нашей модели.
rf.fit(x_train,y_train)

Оценка модели

В этой статье есть несколько способов оценить наше машинное обучение, мы рассмотрим один из них.
Точность
Точность определяет, насколько хорошо работает ваша модель, когда она прогнозирует целевые данные теста. с фактическими целевыми результатами.
Мы можем проверить точность нашей модели после подгонки модели с помощью простого кода.
rf.score(x_test,y_test)
Это дает оценку 0,743, что при преобразовании составляет 74,3%.

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

Первоначально опубликовано на https://dev.to 24 июня 2023 г.