Как да извършите логистична регресия в Python?



Логистична регресия в Python, използвайки sklearn за прогнозиране на резултата чрез определяне на връзката между зависими и една или повече независими променливи.

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

  1. Какво е регресия?
  2. Логистична регресия в Python
  3. Логистична регресия срещу линейна регресия
  4. Случаи на употреба
  5. Демонстрация

Можете също така да се обърнете към този подробен урок за логистична регресия в python с демонстрация за по-добро разбиране или да преминете през за овладяване на логистичната регресия.





Какво е регресия?

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

Постоянно се натъкваме на регресия по интуитивен начин. Като прогнозиране на времето, използвайки набора от данни за метеорологичните условия в миналото.



Той използва много техники за анализ и прогнозиране на резултата, но акцентът е главно върху връзка между зависима променлива и една или повече независими променливи.

анализ прогнозира резултата в двоична променлива, която има само два възможни резултата.



Логистична регресия в Python

Това е техника за анализ на набор от данни, която има зависима променлива и една или повече независими променливи, за да се предвиди резултатът в двоична променлива, което означава, че ще има само два резултата.

Зависимата променлива е категоричен в природата. Зависимата променлива също се нарича целева променлива а независимите променливи се наричат предсказатели .

Логистичната регресия е специален случай на линейна регресия, където прогнозираме резултата само в категорична променлива. Той предсказва вероятността от събитието, използвайки функцията log.

Ние използваме Сигмоидна функция / крива да се предскаже категоричната стойност. Стойността на прага решава резултата (победа / загуба).

Уравнение за линейна регресия: y = β0 + β1X1 + β2X2…. + βnXn

  • Y означава зависимата променлива, която трябва да се предскаже.
  • β0 е Y-пресечната точка, която всъщност е точката на линията, която докосва оста y.
  • β1 е наклонът на линията (наклонът може да бъде отрицателен или положителен в зависимост от връзката между зависимата променлива и независимата променлива.)
  • X тук представлява независимата променлива, която се използва за прогнозиране на нашата резултираща зависима стойност.

Сигмоидна функция: p = 1/1 + д-Да

Приложете сигмоидна функция върху уравнението за линейна регресия.

логистична регресия в python-edureka

Уравнение на логистичната регресия: p = 1/1 + д- (β0 + β1X1 + β2X2…. + βnXn)

Нека да разгледаме различните видове логистична регресия.

Видове логистична регресия

SQL уроци за сървъри за начинаещи
    • Двоична логистична регресия - има само два възможни резултата. Пример - да или не
    • Мултиномиална логистична регресия - Тя има три или повече номинални категории. Пример - котка, куче, слон.
    • Обикновена логистична регресия - Тя има три или повече поредни категории, което означава, че категориите ще бъдат подредени. Пример - потребителски оценки (1-5).

Линейна срещу логистична регресия

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

Линейната регресия се използва, когато променливата на отговора има непрекъснат характер, но логистичната регресия се използва, когато променливата на отговора има категоричен характер.

Прогнозирането на неизпълнител на задължения в банка, използвайки подробностите за транзакцията в миналото, е пример за логистична регресия, докато непрекъснатото излизане като резултат на фондовия пазар е пример за линейна регресия.

Случаи на употреба

Следват случаите на използване, при които можем да използваме логистична регресия.

Прогноза за времето

Прогнозите за времето са резултат от логическа регресия. Тук анализираме данните от предишните метеорологични доклади и прогнозираме възможния резултат за определен ден. Но логическата регресия би предсказала само категорични данни, като например дали ще вали или не.

Определяне на болестта

Ние можемизползванелогическа регресия с помощта на медицинската история на пациента, за да се предскаже дали заболяването е положително или отрицателно във всеки случай.

Нека вземем примерен набор от данни, за да изградим модел за прогнозиране, използвайки логистична регресия.

Демонстрация

Ще изградим модел за прогнозиранеизползвайкилогическа регресия в Python с помощтананабор от данни,в товаще разгледаме следните стъпки за постигане на логическа регресия.

Събиране на данни

Първата стъпка за прилагане на логистичната регресия е събирането на данните. Ще заредим csv файла, съдържащ набора от данни, в програмите, използвайки пандите. Използваме данните от НБА за изграждане на модела за прогнозиране, за да предскажем възможността за домакински мач или гостуване, като анализираме връзката между съответните данни.

импортиране на панди като pd импортиране на numpy като np импорт seaborn като sns импортиране matplotlib.pyplot като plt df = pd.read_csv (r'C: UsersMohammadWaseemDocumentsdata.csv ') print (df.head (5))

Ще получите всички данни в четлив формат за по-лесен анализ. И тогава можете да определите зависимите и независимите променливи за вашия модел.

Анализиране на данни

Наборът от данни се анализира, за да се определи връзката между променливите. Чрез създаване на различни графики за проверка на връзката между променливите.

sns.countplot ('Начало', hue = 'WINorLOSS', data = df) plt.show ()

алгоритъм на Фибоначи c ++

По-горе е връзката между процента победа / загуба по отношение на играта домакин / гост. Симиларноможем да начертаем графиката на връзката между други съответни записи в данните.

Разбъркване на данни

Наборът от данни се модифицира според целевата променлива. Ще премахнем всички нулеви стойности и низовите стойности, както и от DataFrame.

print (df.isnull (). sum ())

Ще проверим за всички неподходящи данни като нулеви стойности и стойности, които няма да са необходими при изграждането на модела за прогнозиране. Ако в набора от данни на NBA няма нулеви стойности, които използваме, ще продължим с разделянето на данните.

Данни за тестване и обучение

За изпълнението на модела данните се разделят на данните от теста и данните за влака. Данните се разделят с помощта на train_test_split . Данните тук са разделени в съотношение 70:30.

Сега, за прогнозиране на модела функцията за логистична регресия се реализира чрез импортиране на модела за логистична регресия в модула sklearn.

След това моделът се монтира на влаковата композиция с помощта на функцията за монтиране. След това прогнозирането се извършва с помощта на функцията за прогнозиране.

от sklearn.model_selection импорт train_test_split от sklearn.linear_model импортиране LogisticRegression от sklearn.metrics импортиране class_report от sklearn.metrics импорт confusion_matrix, точността_оценка x = df.drop ('Начало', ос = 1) y = df ['Начало'] x_train x_test, y_train, y_test = train_test_split (x, y, test_size = 0.33, random_state = 1) logmodel = LogisticRegression () logmodel.fit (x_train, y_train) прогнози = logmodel.predict (x_test) print (класификация_доклад (y_test, прогнози)) print (confusion_matrix (y_test, прогнози)) print (score_score (y_test, прогнози))

Доклад за класификация:

Докладът за класификация показва Прецизност , Припомняне, F1 и поддръжка резултати за модела.

Прецизност резултат означава нивото, до което прогнозата, направена от модела, е точна. Точността за домакински мач е 0,62 а за гостуването играта е 0,58 .

Припомням си е сумата, до която моделът може да предскаже резултата. Отзоваването за домакински мач е 0,57 а за гостуване е 0,64 . Резултатите F1 и Support са количеството данни, тествани за прогнозите. В набора от данни на НБА данните, тествани за домашна игра, са 1662 а за гостуването играта е 1586 .

Матрица на объркване:

Матрицата за объркване е таблица, която описва работата на модел за прогнозиране. Матрицата за объркване съдържа действителните стойности и прогнозираните стойности. можем да използваме тези стойности, за да изчислим оценката за точност на модела.

Топлинна карта на матрицата на объркване:

Нека начертаем топлинна карта на матрицата на объркването, използвайки seaborn и за да визуализираме модела за прогнозиране, който сме изградили. За да се начертае топлинна карта, е необходим следният синтаксис.

sns.heatmap (pd.DataFrame (объркване_матрица (y_test, прогнози))) plt.show ()

Разглеждайки топлинната карта, можем да заключим следното:

  • От всички прогнози класификаторът прогнозира да за общо 1730 пъти, от които 1012 са действителни да.
  • от всички прогнози класификаторът прогнозира не за общо 1518 пъти, от които 944 са действителни не.

С този анализ на матрицата на объркването можем да направим заключение за точността на нашия модел за прогнозиране.

Резултат за точност:

Резултатът за точност е процентът на точност на прогнозите, направени от модела. За нашия модел резултатът за точност е 0,60, което е значително доста точно. Но колкото по-точен е резултатът, толкова по-ефективен е вашият модел за прогнозиране. Винаги трябва да се стремите към по-висока оценка на точността за по-добър модел за прогнозиране.

Следвайки стъпките, обсъдени по-горе, предвидихме възможността за игра домакин / гост, използвайки набора от данни на NBA. След анализ на доклада за класиране можем да предположим възможността за игра домакин / гост.

В този блог обсъдихме логистичната регресия в концепциите на python, как тя се различава от линейния подход. Също така сме отразили демонстрация, използвайки NBA Dataset. За повече информация и практика можете да използвате набор от данни по ваш избор и да следвате обсъдените стъпки, за да приложите логистична регресия в Python.

Също така, разгледайте различните блогове за Data-Science на платформата edureka, за да овладеете учения за данни във вас.

Ако искате да научите Python и да изградите кариера в науката за данни, разгледайте нашия интерактивен онлайн на живо тук това идва с поддръжка 24 * 7, която да ви води през целия период на обучение.
Имате въпрос? Моля, споменете го в коментарите и ние ще се свържем с вас.