Логистическая регрессия в Python | Python для науки о данных

Логистическая регрессия в Python — это метод предиктивного анализа. Он также используется в машинном обучении для задач бинарной классификации. В этом блоге мы рассмотрим следующие темы, чтобы понять логистическую регрессию в Python:

Что такое регрессия?

Регрессионный анализ является мощным методом статистического анализа. А зависимый интересующая нас переменная используется для предсказания значений других независимые переменные в наборе данных.

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

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

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

Логистическая регрессия в Python

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

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

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

Мы используем Сигмовидная функция/кривая прогнозировать категориальное значение. Пороговое значение определяет результат (выигрыш/проигрыш).

Уравнение линейной регрессии: у = β0 + β1X1 + β2X2 …. + βnXn

  • Y обозначает зависимую переменную, которую необходимо предсказать.
  • β0 — это точка пересечения Y, которая представляет собой точку на линии, касающуюся оси Y.
  • β1 — наклон линии (наклон может быть отрицательным или положительным в зависимости от отношения между зависимой переменной и независимой переменной).
  • X здесь представляет собой независимую переменную, которая используется для прогнозирования результирующего зависимого значения.

Сигмовидная функция: р = 1 / 1 + еу

Примените сигмовидную функцию к уравнению линейной регрессии.

1-1-311x300.png

Уравнение логистической регрессии: p =1 / 1 + e-(β0 + β1X1 + β2X2 …. + βnXn)

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

Типы логистической регрессии

Картинка1-7-195x300.png

  • Бинарная логистическая регрессия — имеет только два возможных результата. Пример — да или нет
  • Полиномиальная логистическая регрессия. Имеет три или более номинальных категорий. Пример: кошка, собака, слон.
  • Порядковая логистическая регрессия. Имеет три или более порядковые категории, порядковый номер означает, что категории будут в порядке. Пример — рейтинги пользователей (1-5).

Линейная и логистическая регрессия

1-311x300.png

2-341x300.png

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

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

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

Сценарии использования

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

Прогноз погоды

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

Определение болезни

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

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

Демо

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

  • Сбор данных
  • Анализ данных
  • Обработка данных
  • Тренируйтесь и тестируйте
  • Отчет о точности

Сбор данных

Самым первым шагом для реализации логистической регрессии является сбор данных. Мы загрузим файл csv, содержащий набор данных, в программы, используя файл pandas. Мы используем данные НБА для построения модели прогнозирования, чтобы предсказать возможность домашней или выездной игры, анализируя взаимосвязь между соответствующими данными.

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

df = pd.read_csv(r'C:UsersMohammadWaseemDocumentsdata.csv')
print(df.head(5))

3-528x134.png

Вы получите все данные в удобочитаемом формате для облегчения анализа. И тогда вы можете определить зависимые и независимые переменные для вашей модели.

Анализ данных

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

sns.countplot('Home', hue="WINorLOSS", data=df)
plt.show()

Картинка1-1-400x300.png

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

Обработка данных

Набор данных изменяется в соответствии с целевой переменной. Мы удалим все нулевые значения, а также строковые значения из DataFrame.

print(df.isnull().sum())

Мы проверим все нерелевантные данные, такие как нулевые значения и значения, которые не потребуются при построении модели прогнозирования. Если в используемом нами наборе данных NBA нет нулевых значений, мы продолжим разделение данных.

Протестируйте и обучите данные

Для производительности модели данные разбиваются на тестовые данные и обучающие данные. Данные разделены с помощью поезд\тест\раскол. Данные здесь разделены в соотношении 70:30.

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

Затем модель подгоняется к набору поездов с помощью функции подгонки. После этого прогноз выполняется с использованием функции прогнозирования.

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix,accuracy_score

x = df.drop('Home', axis=1)
y = df['Home']
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.33, random_state=1)
logmodel = LogisticRegression()
logmodel.fit(x_train, y_train)

predictions = logmodel.predict(x_test)
print(classification_report(y_test, predictions))
print(confusion_matrix(y_test, predictions))
print(accuracy_score(y_test, predictions))

5.png

Отчет о классификации:

В отчете о классификации отображается Точность отзыв , F1 и оценка поддержки для модели.

Точность оценка означает уровень, до которого прогноз, сделанный моделью, является точным. Точность для домашней игры 0,62 а для выездной игры есть 0,58.

Отзывать это сумма, до которой модель может предсказать результат. Напомним, что домашняя игра 0,57 а для выездной игры есть 0,64. Оценки F1 и поддержки — это объем данных, проверенных для прогнозов. В наборе данных NBA данные, проверенные для домашней игры, 1662 а для выездной игры есть 1586.

Матрица путаницы:

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

Тепловая карта матрицы путаницы:

Давайте построим тепловую карту матрицы путаницы, используя seaborn и matplotlib, чтобы визуализировать построенную нами модель прогнозирования. Чтобы построить тепловую карту, необходим следующий синтаксис.

sns.heatmap(pd.DataFrame(confusion_matrix(y_test,predictions)))
plt.show()

Картинка2-399x300.png

Глядя на тепловую карту, можно сделать следующие выводы:

  • Из всех прогнозов классификатор предсказал «да» всего 1730 раз, из которых 1012 раз были «да».
  • из всех прогнозов классификатор предсказал нет всего 1518 раз, из которых 944 были фактическими нет.

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

Оценка точности:

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

Следуя описанным выше шагам, мы предсказали возможность игры дома/в гостях, используя набор данных НБА. Проанализировав протокол классификации, можно предположить возможность игры дома/в гостях.

В этом блоге мы обсудили логистическую регрессию в концепциях Python, чем она отличается от линейного подхода. Кроме того, мы рассмотрели демонстрацию с использованием набора данных NBA. Для получения дополнительной информации и практики вы можете использовать набор данных по вашему выбору и выполнить описанные шаги для реализации логистической регрессии в Python.

Есть вопрос? Пожалуйста, укажите это в комментариях, и мы свяжемся с вами.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *