Рубрики
Без рубрики

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

Мы собираемся начать с определения регрессии, а затем мы разберемся, какую логистическую регресс … Теги с машинным обучением, учебником, Python.

Мы собираемся начать с определения регрессии, а затем мы разберем, какая логистическая регрессия. Таким образом, как общий термин, регрессия является статистическим процессом для оценки отношений между переменными. Это часто используется для прогнозирования некоторых результатов. Линейная регрессия – один тип регрессии, который используется, когда у вас есть непрерывная целевая переменная. Например, в этом случае, когда мы пытаемся предсказать количество зонтов, продаваемых количеством осадков, и определение алгоритма для линейной регрессии составляет + б. Так что это линейная регрессия. Но давайте вернемся к логистической регрессии.

Логистическая регрессия – это форма регрессии, где целевая переменная или то, что вы пытаетесь предсказать, является двоичным. Так просто ноль или один или истинный или ложный или что-то подобное. Почему нам нужно два разных алгоритма для регрессии? Почему линейная регрессия не работает для бинарной целевой переменной? Поэтому представьте сюжет, где мы просто используем одну функцию X вдоль оси X, чтобы предсказать двоичный результат Y. Если мы используем линейную регрессию для двоичной цели, подобную этому, с наилучшей линейной линией, которая имеет любой смысл. Линейная регрессия попытается установить линию, которая соответствует всем данным, и она в конечном итоге прогнозирует отрицательные значения и значения над одним, что невозможно.

Логистическая регрессия встроена из логистической или сигмовидной кривой, которая выглядит как эта форма, которая вы видите ниже.  . Это всегда будет между нулем и одним, и это делает его намного лучше для проблем с двоичной классификацией. Поэтому мы увидели уравнение, которое представляет собой то, что уравнение похоже на логистическую регрессию? Как выглядит уравнение для логистической регрессии? По сути, это просто принимает алгоритм линейного регрессии для линии MX + b. И это заправляет его как отрицательный показатель для е. Таким образом, наше полное уравнение составляет 1 более 1 + E к отрицательному MX + B. И это то, что создает эту приятную кривую Sigmoid S, которая делает его хорошей подходящей для проблем с бинарными классификацией

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

Когда не использовать Непрерывная целевая переменная Массивные данные Производительность – это единственное, что имеет значение

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

Библиотеки ввода

import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt
dataset = pd.read_csv('...\\User_Data.csv')

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

 input 
x = dataset.iloc[:, [2, 3]].values 

 output 
y = dataset.iloc[:, 4].values

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

from sklearn.cross_validation import train_test_split 
xtrain, xtest, ytrain, ytest = train_test_split( 
x, y, test_size = 0.25, random_state = 0)

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

from sklearn.preprocessing import StandardScaler 
sc_x = StandardScaler() 
xtrain = sc_x.fit_transform(xtrain) 
xtest = sc_x.transform(xtest) 

print (xtrain[0:10, :])


Output :
[[ 0.58164944 -0.88670699]
 [-0.60673761  1.46173768]
 [-0.01254409 -0.5677824 ]
 [-0.60673761  1.89663484]
 [ 1.37390747 -1.40858358]
 [ 1.47293972  0.99784738]
 [ 0.08648817 -0.79972756]
 [-0.01254409 -0.24885782]
 [-0.21060859 -0.5677824 ]
 [-0.21060859 -0.19087153]]

Здесь однажды увидим, что возрастные и оценочные значения особенностей зарплаты священы и теперь в -1 до 1. Следовательно, каждая функция будет вносят вклад в поровну в принятии решений I.E. Завершение гипотезы. Наконец, мы тренируем нашу модель логистической регрессии.

from sklearn.linear_model import LogisticRegression 
classifier = LogisticRegression(random_state = 0) 
classifier.fit(xtrain, ytrain)

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

y_pred = classifier.predict(xtest)
Let's test the performance of our model - Confusion Matrix
from sklearn.metrics import confusion_matrix 
cm = confusion_matrix(ytest, y_pred) 

print ("Confusion Matrix : \n", cm)
Confusion Matrix : 
 [[65  3]
 [ 8 24]]

Из 100: TruePostive + + 24 НестОгодично + + 8 показатель производительности – точность

from sklearn.metrics import accuracy_score 
print ("Accuracy : ", accuracy_score(ytest, y_pred))




Accuracy :  0.89

Я скоро буду публиковать эту статью на GeeksForGeeks.

Оригинал: “https://dev.to/adityaberi8/logistic-regression-eg1”