Логистическая регрессия является широко используемой моделью классификации. В этой модели зависимая переменная или целевое значение представляет собой дискретное двоичное значение, т. е. 1 или 0, предполагающее успешное или неудачное выполнение, выигрыш или проигрыш, истинное или ложное.
Хотя это классификационная модель, термин «регрессия» в ее названии предполагает, что эта модель работает аналогично модели регрессии, которая является прогностическим моделированием. Вместо подгонки линии регрессии (точно так же, как при линейной регрессии) мы подгоняем S-кривую, известную как сигмовидная кривая, которая предсказывает два значения 0 или 1. Это Кривая S указывает на максимальную вероятность события.
УРАВНЕНИЕ ЛОГИСТИЧЕСКОЙ РЕГРЕССИИ
Выведем логистическое уравнение из уравнения прямой. пусть есть две функции x1 и x2, поэтому линейная связь между функциями и целевым значением будет y = Ax1 + Bx2 + C
, но диапазон y здесь от отрицательной бесконечности до бесконечности.
Для логистической регрессии нам нужно, чтобы y был равен нулю или единице, поэтому мы манипулируем уравнением как y/(1-y)
, теперь диапазон от нуля до бесконечности, чтобы сделать диапазон от нуля до единицы, мы логарифмируем, и требуемое логистическое уравнение задается как log(y/(1-y))
СИГМОИДНАЯ ВЕРОЯТНОСТЬ
Вероятность цели y ограничена 0 или 1, это называется сигмовидной вероятностью. Математически,
- здесь «t» — значения данных, т. е. значения признаков «X».
- S(t) представляет собой вероятность быть истинным или ложным, то есть значение зависимой переменной «Y»
Эта математическая функция дает кривую «S», которая имеет конечный предел от 0 до 1, 0, когда «t» приближается к -бесконечности, и 1, когда «t» приближается к +бесконечность
МАТРИЦА ЗАМЕДЛЕНИЙ
Матрица путаницы — это матрица, которая используется для оценки эффективности модели классификации. Эта матрица сравнивает прогнозируемые значения целевой переменной с ее фактическими значениями.
- TN: True Negative (количество фактических ложных предсказаний, которые были предсказаны правильно)
- TP: True Positive (количество фактических истин, которые были предсказаны правильно)
- FN: False Negative (количество предсказанных ложных результатов, которые на самом деле верны)
- FP: False Positive (количество предсказанных истин, которые на самом деле ложны)
ЗНАЧЕНИЕ МАТРИЦЫ СМЕШАННОСТИ
Матрица путаницы используется для определения некоторых важных показателей, таких как точность, достоверность, полнота/чувствительность и показатель f-1.
Точность
Это просто означает, что насколько точно модель предсказала целевые значения, определяется формулой:
Точность
Это относится к правильности, достигнутой в предсказании, оно просто говорит нам о фактических положительных результатах из общего числа предсказанных положительных результатов, это дается формулой:
Вспомнить
Он говорит нам о чувствительности модели, определяя, сколько фактических положительных результатов предсказано правильно. Он рассчитывается по формуле:
Оценка F-1
Это помогает нам одновременно оценить отзыв и точность для сравнения двух моделей, он рассчитывается по формуле:
ЛОГИСТИЧЕСКАЯ РЕГРЕССИЯ В PYTHON
Мы будем использовать библиотеку Scikit Learn для реализации логистической регрессии и матрицы путаницы в наборе данных Titanic, взятом с kaggle.com. В этом примере мы использовали набор данных train.csv.
- Импорт всех необходимых библиотек
import numpy as np import pandas as pd from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score,precision_score from sklearn.metrics import recall_score,confusion_matrix from sklearn.model_selection import train_test_split as tts
- Чтение данных
data=pd.read_csv("./titanic.csv") print(data.shape)
data.head(5)
data.describe()
data.Survived.value_counts() # count the number of survivors
- Очистка данных (в этом примере мы не выполняем обширную очистку данных)
#considering only important fields columns=['Pclass','Survived','Sex','Fare','Age'] data=data[columns] data.head()
#returning true at the places where null values are present print(data.isnull())
#removing null data points from the dataset data.dropna(axis=0,how='any',inplace=True) #we can see that the data points are reduced because null data points are removed
- Разделение данных для обучения и прогнозирования
#splitting the target column and the features X=data[['Pclass','Fare','Age']] Y=data['Survived'] #splitting the data for training the model x_train,x_test,y_train,y_test=tts(X,Y,test_size=0.2,random_state=42)print(x_train.shape) print(x_test.shape) print(y_train.shape) print(y_test.shape)
- Обучение модели и прогнозирование целевых значений
model=LogisticRegression() model.fit(x_train,y_train) predicted_y = model.predict(x_test) print(predicted_y.shape)
- Измерение точности, точности, отзыва и оценки F-1 с использованием матрицы путаницы
c_matrix=confusion_matrix(y_test,predicted_y) print(c_matrix)
print("True Negtive = ",c_matrix[0][0]) print("False Positive = ",c_matrix[0][1]) print("False Negtive = ",c_matrix[1][0]) print("True Positive = ",c_matrix[1][1])
print(accuracy_score(y_test,predicted_y)) print(precision_score(y_test,predicted_y)) print(recall_score(y_test,predicted_y))
- Вы можете проверить эти меры, вычислив все эти меры вручную, используя формулы, упомянутые выше. Принятие меры основано на требовании, например, мы можем установить пороговое значение для каждой меры, и если эта мера дает требуемое значение, то модель принимается.
ПРИМЕР ИСПОЛЬЗОВАНИЯ ЛОГИСТИЧЕСКОЙ РЕГРЕССИИ
Мы можем использовать логистическую регрессию во всех сценариях, где цель может быть разделена на 2 категории, например
- Обнаружение спама
- Кредитная санкция
- Прогноз результатов экзамена
- Выживание в катастрофе
Во всех этих случаях результатом является двоичное число (0,1), например, для системы обнаружения спама сущность будет либо спамом, либо не спамом; для санкции по кредиту банк либо санкционирует кредит, либо нет; для предсказания выживания человек либо выживет, либо умрет.
Надеюсь, вы все понимаете, что такое логистическая регрессия и как мы измеряем точность модели.
Оставайтесь на связи, чтобы узнать больше о машинном обучении.