Бинарная классификация.
Логистическая регрессия - это простейшая модель двоичной классификации с учителем. Бинарная классификация подразумевает, что наша целевая переменная является дихотомической, то есть может принимать два значения, например 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 функцию логистической регрессии можно применить к целям, имеющим более двух категориальных значений.
Надеюсь, этот пост помог вам понять основы логистической регрессии.
Это все.