Рубрики
Без рубрики

Логистическая регрессия – простая практическая реализация

Здравствуйте, читатели! В этой статье мы будем сосредоточены на практической реализации логистической регрессии в Python.

Автор оригинала: Pankaj Kumar.

Здравствуйте, читатели! В этой статье мы будем сосредоточены на практической реализации Логистическая регрессия в питоне.

В нашей серии машинного обучения на Python мы уже поняли о различных наблюдателях ML, таких как линейная регрессия, K ближайший сосед и т. Д. Сегодня мы будем сосредоточены на логистической регрессии и будут решать реальную проблему с тем же ! В восторге? Да! 🙂.

Начнем!

Во-первых, что такое логистическая регрессия?

Перед началом логистической регрессии давайте понять, куда нам это нужно.

Как мы все знаем, Надзорное машинное обучение Модели работают постоянно, а также категорические значения данных. Из которых, Категорические значения данных являются элементами данных, которые содержат группы и категории.

Итак, чтобы разобрать прогнозы, когда у нас есть категорическая переменная данных, поскольку зависимая переменная, когда логистическая регрессия вступает в картину.

Логистическая регрессия это модель обучения машины, которая работает на бинарный или Многочисленные категорические переменные данных как зависимые переменные. То есть это Алгоритм классификации которые сегрегаты и классифицируют бинарные или многоречие значения отдельно.

Например, если проблема хочет, чтобы мы прогнозируют результат как «да» или «нет», то есть логистическая регрессия для классификации зависимых переменных данных и выяснила результат данных.

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

Давайте теперь посмотрим на реализацию логистической регрессии.

Практический подход – логистическая регрессия

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

Вы можете найти набор данных здесь Отказ

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

На начальном шаге нам нужно загрузить набор данных в среду с использованием функции PandaS.READ_CSV ().

import pandas as pd
import numpy as np
data = pd.read_csv("bank-loan.csv") # dataset

2. Отбор отбора данных набора данных

Загрузив набор данных, давайте теперь распределим набор данных на набор набора данных, используя функцию Train_test_Split ().

from sklearn.model_selection import train_test_split 
X = loan.drop(['default'],axis=1) 
Y = loan['default'].astype(str)
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=.20, random_state=0)

Здесь X – тренировочный набор данных, который содержит все переменные, кроме значения отклика/целевого значения, а Y относится к набору тестирования, который содержит только переменную ответ.

3. Определение метрик ошибок для модели

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

Здесь мы создали путаницу матрицы и рассчитали точность, отзыв, точности и балл F1.

def err_metric(CM): 
    
    TN = CM.iloc[0,0]
    FN = CM.iloc[1,0]
    TP = CM.iloc[1,1]
    FP = CM.iloc[0,1]
    precision =(TP)/(TP+FP)
    accuracy_model  =(TP+TN)/(TP+TN+FP+FN)
    recall_score  =(TP)/(TP+FN)
    specificity_value =(TN)/(TN + FP)
    
    False_positive_rate =(FP)/(FP+TN)
    False_negative_rate =(FN)/(FN+TP)

    f1_score =2*(( precision * recall_score)/( precision + recall_score))

    print("Precision value of the model: ",precision)
    print("Accuracy of the model: ",accuracy_model)
    print("Recall value of the model: ",recall_score)
    print("Specificity of the model: ",specificity_value)
    print("False Positive rate of the model: ",False_positive_rate)
    print("False Negative rate of the model: ",False_negative_rate)
    print("f1 score of the model: ",f1_score)
    

4. Примените модель на DataSet

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

logit= LogisticRegression(class_weight='balanced' , random_state=0).fit(X_train,Y_train)
target = logit.predict(X_test)
CM_logit = pd.crosstab(Y_test,target)
err_metric(CM_logit)

Объяснение:

  • Первоначально мы применили Логистикарессия () Функция на наборе тренировок.
  • Кроме того, мы кормили вышеупомянутый выход для прогнозирования значений тестового набора данных, используя прогнозировать () функция.
  • Наконец, мы создали корреляционную матрицу, используя Crosstab () и затем называется настроенную функцию метрики ошибок (ранее созданные), чтобы судить о результате.

Выход:

Precision value of the model:  0.30158730158730157
Accuracy of the model:  0.6382978723404256
Recall value of the model:  0.7307692307692307
Specificity of the model:  0.6173913043478261
False Positive rate of the model:  0.3826086956521739
False Negative rate of the model:  0.2692307692307692
f1 score of the model:  0.42696629213483145

Итак, как свидетелем выше, у нас есть 63% Точность нашей модели.

Заключение

По этому, мы подошли к концу этой темы. Не стесняйтесь комментировать ниже, если вы столкнетесь с любым вопросом. Для более таких постов, связанных с Python и ML, оставаться настроенными и до тех пор,

Счастливое обучение !! 🙂.