Предположим, вы только что сдали экзамен GRE (который является стандартным тестом, принимаемым аспирантами и бизнес-школами по всему миру) и набрали 310 из 340 возможных. Вы чувствуете себя довольно уверенно, но хотите узнать свои шансы или вероятность. поступить в университет уровня А с таким баллом.

Вы собираетесь собрать соответствующие данные, прежде чем разработать всеобъемлющую стратегию. Вы сталкиваетесь со списком баллов GRE с указанием того, были ли они приняты университетами уровня A или нет. Ответ университета дается в форме «Да» или «Нет», и ничего промежуточного.

В моей предыдущей статье я обсуждал линейную регрессию и ее применение, которое можно было бы использовать для поиска корреляции между независимыми и зависимыми переменными, и мы сделали это с помощью линии наилучшего соответствия. Но для этой конкретной ситуации переменная ответа ведет себя дихотомически, то есть она двоичная (да и нет), а не непрерывная. Если вы присмотритесь, легко понять, почему линейная линия наилучшего соответствия здесь не служит цели, и поэтому использование линейной регрессии в этом случае даст плохие прогнозы.

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

Конечно, лучшим решением должно быть получение чего-то вроде S-образной кривой. Это называется сигмовидной функцией. Мы используем сигмовидную функцию S (x), потому что выход функции находится между 0 и 1 (оценка вероятности). Мы можем использовать эту функцию для оценки вероятности поступления в университет уровня A с определенным баллом GRE. Мы в основном подгоним (обучим) нашу сигмовидную кривую к нашему обучающему набору и будем использовать модель, чтобы определить вероятность получения определенного балла.

Мы можем решить, что если вероятность ниже 50%, более вероятно, что университет отклонит заявку, и наоборот.

Если вы помните из прошлого раза, мы использовали библиотеку sklearn.linear_model. На этот раз мы будем использовать ту же библиотеку. Что касается класса, мы будем использовать LogisiticRegression. Как видите, имена довольно интуитивно понятны.

from sklearn.linear_model import LogisticRegression

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

classifier = LogisticRegression()

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

classifier.fit(X_train, y_train)

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

y_pred = classifier.predict(X_test)

Вуаля! Это даст нам ряд прогнозируемых данных. Здесь y_pred - это прогнозируемые значения, а наши данные y_test - фактические значения.

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

Чтобы создать матрицу путаницы, мы будем использовать функцию confusion_matrix из библиотеки sklearn.metrics. Имена, которые мы уже видели, довольно интуитивно понятны.

from sklearn.metrics import confusion_matrix

Теперь мы вызовем нашу функцию и просто передадим параметры. Первый параметр этой функции запрашивает истинные (правильные) значения, которые представлены нашими значениями y_test. Второй параметр запрашивает наши оценочные (предсказанные) значения, которые представлены нашими значениями y_pred. Мы можем передать эти два параметра, чтобы успешно создать нашу матрицу путаницы.

cm = confusion_matrix(y_test, y_pred)

Вот так! Вы успешно применили логистическую регрессию к своей проблеме. Это простая, но эффективная модель машинного обучения, когда переменные-предикторы находятся в категориальной форме (в тексте) или в двоичной форме (0 или 1).

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

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

Мы можем создавать захватывающие визуализации, подобные приведенной выше, чтобы представить наши текущие открытия / идеи. Мы можем решить покрасить точки данных в красный цвет, если классификатор предсказывает это как «0», или в зеленый цвет в противном случае. Логистическая регрессия - это линейный классификатор, что означает, что он проводит прямую линию для классификации между двумя категориями наблюдений. Если вы внимательно посмотрите на диаграмму, зеленые точки в красной области и красные точки в зеленой области - это неправильные прогнозы, которые наша модель сделала в этом случае. Это будет зависеть от проблемы, которую вы пытаетесь решить. Золотое правило машинного обучения - всегда скептически относиться к результатам. Я подробно расскажу о визуализации данных в следующей статье.

Удачи!