Прогнозирование категориальных результатов стало проще
Присоединяйтесь ко мне в третий день моего путешествия по машинному обучению, когда мы погрузимся в мир логистической регрессии. Узнайте, как этот алгоритм, несмотря на его название «регрессия», является мощным средством прогнозирования категориальных значений. Мы изучим реальные приложения, углубимся в работу сигмовидной кривой и шаг за шагом проведем вас через реализацию логистической регрессии для прогнозирования покупок автомобилей на основе зарплаты.
Что такое логистическая регрессия?
На первый взгляд термин «регрессия» может ввести вас в заблуждение, но логистическая регрессия занимается прогнозированием категориальных значений. Представьте себе классификацию того, является ли электронное письмо спамом или нет, или определение того, уйдет ли клиент — это проблемы, которые логистическая регрессия решает с изяществом.
Реальные приложения:
Логистическая регрессия находит свое применение в различных отраслях:
- Медицинская диагностика: выявление наличия заболевания на основе различных факторов.
- Оценка кредитного риска. Оценка вероятности невыплаты клиентом кредита.
- Маркетинг: прогнозирование того, совершит ли клиент покупку, на основе его поведения в Интернете.
Сигмовидная кривая:
Ядро логистической регрессии лежит в сигмовидной кривой, которая преобразует линейные комбинации в значения от 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 * (Точность * Повторность) / (Точность + Повторность).
Заключение
Третий день моего изучения алгоритмов машинного обучения подходит к концу, и я погрузился в удивительную сферу логистической регрессии. Я развеял неправильные представления о его названии, стал свидетелем его мастерства в предсказании категориальных результатов и сделал первые шаги по внедрению этого бесценного инструмента.
Благодаря реальным примерам и практическому опыту я открыл дверь в мир возможностей прогнозного моделирования. Следите за обновлениями, чтобы увидеть еще больше познавательных глав, пока я продолжаю свое учебное путешествие по увлекательному миру машинного обучения!