Бинарная классификация.

Логистическая регрессия - это простейшая модель двоичной классификации с учителем. Бинарная классификация подразумевает, что наша целевая переменная является дихотомической, то есть может принимать два значения, например 0 или 1.

Сигмовидная функция:

Сигмоидальная функция - это дифференцируемая функция, активно используемая в задачах оптимизации. Из графика функции logit видно, что значение функции не сильно меняется для больших входных данных (меньше подвержено влиянию выбросов). Эта функция используется для присвоения значений вероятности в модели логистической регрессии.

Сигмовидная функция также используется как функция активации в моделях глубокого обучения.

Двоичная кросс-энтропия:

Размер вывода - это общее количество точек данных, используемых в обучении.

это основная истина точки данных

это результат работы модели.

Двоичная кросс-энтропия используется как функция потерь в двоичной логистической регрессии.

Модель логистической регрессии:

G (X) - логистическая функция, θ - матрица весов, а X - матрица переменных. Выходные данные функции находятся в диапазоне от 0 до 1 (сигмоидальный выход). Если значение функции больше или равно 0,5, то вход классифицируется как 1, в противном случае - 0.

Пример кода Python для логистической регрессии:

import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score, roc_auc_score, classification_report
from sklearn.decomposition import PCA
import pandas as pd
from utils.utils_scores import scores

flag_pca = False

data, target = load_breast_cancer(return_X_y=True)
data = pd.DataFrame(data)
target = pd.DataFrame(target)

if flag_pca:
    pca = PCA()
    data = pca.fit_transform(data)

data_train, data_test, target_train, target_test = train_test_split(data, target, test_size=0.1, random_state=0)

LogisticRegressionObject = LogisticRegression()
LogisticRegressionObject.fit(data_train, target_train)

target_test_predict = LogisticRegressionObject.predict(data_test)
scores(target_test, target_test_predict)

Пример кода также можно загрузить с github: https://github.com/Shubham-Saket/binary_classification_example_codes/blob/master/Logistic_Classification.py

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

Надеюсь, этот пост помог вам понять основы логистической регрессии.

Это все.