Прогнозирование категориальных результатов стало проще

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

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

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

Реальные приложения:

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

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

Сигмовидная кривая:

Ядро логистической регрессии лежит в сигмовидной кривой, которая преобразует линейные комбинации в значения от 0 до 1, представляющие вероятности. Еще одним важным аспектом является пороговое значение. Если рассчитанная вероятность превышает порог (обычно 0,5), мы прогнозируем положительный класс; в противном случае мы прогнозируем отрицательный класс.

Например, рассмотрим прогнозирование покупок автомобилей на основе возраста и зарплаты. Если прогнозируемая вероятность покупки автомобиля выше 0,5, модель прогнозирует покупку; в противном случае покупка не прогнозируется.

Реализация: прогнозирование покупок автомобилей

Сегодня мы собираемся использовать возможности логистической регрессии в простом проекте. Наша цель? Прогнозирование покупок на основе переменных возраста и зарплаты. Давайте погрузимся прямо в это познавательное начинание!

Загрузите набор данных SocialNetworkAds.csv здесь:



Ключевые шаги:

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

#Importing dataset
data = pd.read_csv('SocialNetworkAds.csv')
data.head()

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

#Extracting independent variables
X = data.iloc[:, [2,3]].values

#Extracting dependent variables
y = data.iloc[:, 4].values

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

#Splitting dataset
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.25, random_state = 0)

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

#Feature scaling
from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.fit_transform(X_test)

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

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

#Fitting logistic regression model into the training dataset
from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression(random_state=0)
classifier.fit(X_train, y_train)

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

y_pred = classifier.predict(X_test)
y_pred

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

#Evaluation using the consusion matrix
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
cm

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

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

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

Понимание матрицы путаницы:

  • Истинные положительные результаты (TP): правильно предсказанные положительные случаи.
  • Истинные негативы (TN): правильно предсказанные негативные случаи.
  • Ложные срабатывания (FP): неправильно предсказанные положительные случаи.
  • Ложноотрицательные результаты (FN): неправильно предсказанные отрицательные случаи.

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

Истинно положительный результат (TP): 63

Это указывает на то, что 63 экземпляра были правильно предсказаны как положительный класс (например, интересующий класс).

Ложное срабатывание (FP): 5

Это указывает на то, что 5 экземпляров были ошибочно предсказаны как положительный класс, хотя на самом деле они принадлежат отрицательному классу.

Ложноотрицательный результат (FN): 8

Это указывает на то, что 8 экземпляров были ошибочно предсказаны как отрицательный класс, хотя на самом деле они принадлежат к положительному классу.

Истинно отрицательный результат (TN): 24

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

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

Точность. Точность модели – это отношение правильно предсказанных экземпляров (TP + TN) к общему числу экземпляров. В данном случае: (63+24)/(63+5+8+24) = 87/100 = 0,87 или 87%.

Точность. Точность – это отношение правильно предсказанных положительных случаев (TP) к общему количеству предсказанных положительных случаев (TP + FP). В данном случае: 63/(63+5) = 0,926 или 92,6%.

Отзыв (чувствительность или истинно положительный уровень): Отзыв — это отношение правильно предсказанных положительных случаев (TP) к общему количеству фактических положительных случаев (TP + FN). В данном случае: 63/(63+8) = 0,887 или 88,7%.

Оценка F1: Оценка F1 представляет собой гармоническое среднее значение точности и полноты, обеспечивающее сбалансированную меру между ними. Это особенно полезно, когда классы распределены неравномерно. Рассчитывается как: 2 * (Точность * Повторность) / (Точность + Повторность).

Заключение

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

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