Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 15(59)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3

Библиографическое описание:
Ахмедьяров Р.Д. ОБЗОР ЛОГИСТИЧЕСКОЙ РЕГРЕССИИ И ПРИМЕНЕНИЕ В ЯЗЫКЕ ПРОГРАММИРОВАНИЯ PYTHON // Студенческий: электрон. научн. журн. 2019. № 15(59). URL: https://sibac.info/journal/student/59/137750 (дата обращения: 24.12.2024).

ОБЗОР ЛОГИСТИЧЕСКОЙ РЕГРЕССИИ И ПРИМЕНЕНИЕ В ЯЗЫКЕ ПРОГРАММИРОВАНИЯ PYTHON

Ахмедьяров Рустем Досжанович

магистрант, кафедра информационных технологий МУИТ,

Республика Казахстан, г. Алматы

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

Ключевые слова: машинное обучение, логистическая регрессия, алгоритм, глубокое обучение, линейная регрессия, статистика.

 

С каждым днем машинное обучение занимает всё больше и больше места в нашей жизни ввиду огромного количества сфер его применений. Анализ пробок, самоуправляемыми автомобили, статистические задачи, и другого рода задачи перекладываются на алгоритмы машинного обучения.

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

Задачи машинного обучения в основном делятся на три основные группы:

  • Задачи регрессии. Решают проблемы вещественного предсказания.
  • Задачи классификации. Решают проблемы категориального предсказания.
  • Задачи кластеризации. Решают проблемы разбиения входных данных на категории.

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

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

Логистическая регрессия — метод построения линейного классификатора, который позволяет оценивать вероятность принадлежности объекта к определенным классам [1, с. 56].

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

Отличие от линейной регрессией

Главное отличие логистической регрессии от линейной является то, что в логистической регрессии ответ является конкретной константой. Тогда как в линейной регрессии ответ предсказания имеет непрерывный вид. В качестве примера к линейной регрессии можно отнести решение задачи покупки товара клиентом, а в логистической регрессии примером может послужить предсказание цены на товар, акцию, дом. Зависимую переменную в логистической регрессии традиционно кодируют как 0–1, где 0 обозначает отсутствие какой-то характеристики, а 1 – ее наличие [6, с. 297].

Логистическая регрессия в расчетах использует метод максимального правдоподобия (maximum likelihood estimation), тогда как линейная регрессия использует метод наименьших квадратов. «Данный метод является весьма эффективным средством решения задачи оценивания параметров случайного процесса по данным наблюдений при известном виде законов распределения соответствующих случайных выборок, зависящих от оцениваемых параметров» [2, с. 357]. Метод был проанализирован, рекомендован и значительно популяризирован Р. Фишером между 1912 и 1922 годам. Р. Фишер с 1912 по 1922 годов активно анализировал, рекомендовал и популяризовал. На данный является одним из самых популярных методов оценке в статистике.

Виды логистической регрессии

Логистическая регрессия может быть трех видов:

  1. Бинарная логистическая регрессия. Ответ может быть представлен в одном из двух классов.
  2. Мультиномиальная логистическая регрессия. Ответ может быть представлен в виде трех или более именных классов.
  3. Порядковая логистическая регрессия. Ответ может быть представлен в виде трех или более цифровых классов.

Требования к данным

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

  • Независимость. Каждый испытуемый не должен зависеть от других испытуемых.
  • Линейность. Между хотя бы одной из непрерывных независимых переменных и логитом зависимой переменной должна наблюдаться линейная зависимость.
  • Отсутствие мультиколлинеарности. Независимые переменные не должны быть слишком связаны между собой.
  • Нет полного разделения. Значение одной переменной нельзя точно предсказать по значению другой переменной.

Построение модели

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

В качестве примера будем решать задачу по определению будет ли у пациента диабет или нет. Для решения данной задачи нам понадобится:

  • Язык программирования Python версии 3.6.
  • Библиотека Pandas. Это программная библиотека на языке Python для обработки и анализа данных
  • Библиотека машинного обучения Scikit-learn для языка программирования Python.

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

 

Рисунок 1. Импорт данных

 

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

Рисунок 2. Определение зависимых и независимых значений

 

После того как данные правильно разделены необходимы получившийся набор данных разделить на 2 части:

  1. Данные для тренировки (trait dataset)
  2. Данные для проверки (test dataset)

Рисунок 3. Разбивка данных

 

В scikit-learn имеет метод train_test_split позволяющий один набор данных разделить на необходимые 2 набора данных. Параметр test_size определяет в какой пропорций разделять основной набор данных.

Завершающим шагом является создание объекта класса LogisticRegression. LogisticRegression это класс в библиотеке scikit-learn, который реализует всю необходимую логику логистической регрессии.

 

Рисунок 4. Создание и обучение модели

 

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

 

Список литературы:

  1. Sebastian Raschka, Vahid Mirjalili. Python Machin Learning, 2015
  2. И.К. Волков, СМ. Зуев, Г.М. Цветкова. Случайные процессы, 1999
  3. Newsom. I. Data Analysis II: Logistic Regression, 2015
  4. Э. Ллойд, У. Ледерман. Справочник по прикладной статистике, 1989.
  5. И. Елисеева, М. Юзбашева. Общая теория статистики.
  6. С. Бослаф. Статистика для всех, 2015

Оставить комментарий