Jak wykonać regresję logistyczną w Pythonie?



Regresja logistyczna w Pythonie przy użyciu sklearn do przewidywania wyniku poprzez określenie relacji między zależną a jedną lub większą liczbą niezależnych zmiennych.

Regresja logistyczna w Pythonie jest techniką analizy predykcyjnej. Jest również używany w uczeniu maszynowym do rozwiązywania problemów z klasyfikacją binarną. Na tym blogu omówimy następujące tematy, aby zrozumieć regresję logistyczną w Pythonie:

  1. Co to jest regresja?
  2. Regresja logistyczna w Pythonie
  3. Regresja logistyczna a regresja liniowa
  4. Przypadków użycia
  5. Demonstracja

Możesz również odnieść się do tego szczegółowego samouczka dotyczącego regresji logistycznej w Pythonie z demonstracją w celu lepszego zrozumienia lub przejść przez opanować regresję logistyczną.





Co to jest regresja?

Analiza to potężna technika analizy statystycznej. ZA zależny interesująca nas zmienna służy do przewidywania wartości innych niezależne zmienne w zbiorze danych.

Cały czas spotykamy się z regresją w sposób intuicyjny. Podobnie jak przewidywanie pogody przy użyciu zestawu danych dotyczących warunków pogodowych w przeszłości.



Wykorzystuje wiele technik do analizy i przewidywania wyniku, ale nacisk kładzie się głównie na związek między zmienną zależną a co najmniej jedną zmienną niezależną.

Analiza przewiduje wynik w zmiennej binarnej, która ma tylko dwa możliwe wyniki.



Regresja logistyczna w Pythonie

Jest to technika analizy zbioru danych, który zawiera zmienną zależną i jedną lub więcej zmiennych niezależnych, aby przewidzieć wynik w zmiennej binarnej, co oznacza, że ​​będzie miał tylko dwa wyniki.

Zmienna zależna to kategoryczny w naturze. Zmienna zależna jest również nazywana zmienna docelowa a zmienne niezależne nazywane są predyktory .

Regresja logistyczna to szczególny przypadek regresji liniowej, w którym przewidujemy wynik tylko w zmiennej kategorialnej. Przewiduje prawdopodobieństwo zdarzenia za pomocą funkcji dziennika.

Używamy Sigmoidalna funkcja / krzywa przewidzieć wartość kategoryczną. Wartość progowa decyduje o wyniku (wygrana / przegrana).

Równanie regresji liniowej: y = β0 + β1X1 + β2X2…. + βnXn

  • Y oznacza zmienną zależną, którą należy przewidzieć.
  • β0 to punkt przecięcia z osią Y, który jest zasadniczo punktem na prostej, która styka się z osią y.
  • β1 to nachylenie prostej (nachylenie może być ujemne lub dodatnie w zależności od relacji między zmienną zależną a zmienną niezależną).
  • X reprezentuje tutaj zmienną niezależną, która jest używana do przewidywania naszej wynikowej wartości zależnej.

Funkcja Sigmoid: p = 1/1 + e-Y

Zastosuj funkcję sigmoidalną do równania regresji liniowej.

regresja logistyczna w pythonie-edurece

Równanie regresji logistycznej: p = 1/1 + e- (β0 + β1X1 + β2X2…. + βnXn)

Przyjrzyjmy się różnym typom regresji logistycznej.

Rodzaje regresji logistycznej

pl sql tutorial z przykładami
    • Binarna regresja logistyczna - ma tylko dwa możliwe wyniki. Przykład - tak lub nie
    • Wielomianowa regresja logistyczna - ma trzy lub więcej kategorii nominalnych, na przykład kot, pies, słoń.
    • Porządkowa regresja logistyczna - ma trzy lub więcej kategorii porządkowych, co oznacza, że ​​kategorie będą uporządkowane. Przykład - oceny użytkowników (1-5).

Regresja liniowa a regresja logistyczna

Chociaż regresja liniowa może mieć nieskończone możliwe wartości, regresja logistyczna określone wyniki .

Regresja liniowa jest stosowana, gdy zmienna odpowiedzi ma charakter ciągły, natomiast regresja logistyczna jest stosowana, gdy zmienna odpowiedzi ma charakter jakościowy.

Przewidywanie defaulatora w banku przy użyciu szczegółów transakcji w przeszłości jest przykładem regresji logistycznej, podczas gdy ciągły wynik, taki jak wynik giełdowy, jest przykładem regresji liniowej.

Przypadków użycia

Poniżej przedstawiono przypadki użycia, w których możemy użyć regresji logistycznej.

Prognoza pogody

Prognozy pogody są wynikiem regresji logicznej. Tutaj analizujemy dane z poprzednich raportów pogodowych i przewidujemy możliwy wynik na określony dzień. Ale regresja logiczna przewidywałaby tylko dane kategoryczne, na przykład czy będzie padać, czy nie.

Określanie choroby

Możemyposługiwać sięregresja logiczna z pomocą historii medycznej pacjenta, aby przewidzieć, czy choroba jest w każdym przypadku pozytywna, czy negatywna.

Weźmy przykładowy zestaw danych, aby zbudować model prognozowania przy użyciu regresji logistycznej.

Próbny

Zbudujemy model predykcyjnyza pomocąregresja logiczna w Pythonie z pomocązzbiór danych,w tymzajmiemy się następującymi krokami, aby osiągnąć regresję logiczną.

Zbieranie danych

Pierwszym krokiem do wdrożenia regresji logistycznej jest zebranie danych. Załadujemy plik csv zawierający zestaw danych do programów korzystających z pand. Używamy danych NBA do budowania modelu prognostycznego, aby przewidzieć możliwość gry u siebie lub na wyjeździe, analizując związek między odpowiednimi danymi.

import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt df = pd.read_csv (r'C: UsersMohammadWaseemDocumentsdata.csv ') print (df.head (5))

Otrzymasz wszystkie dane w czytelnym formacie dla łatwiejszej analizy. Następnie możesz określić zmienne zależne i niezależne dla swojego modelu.

Analiza danych

Zbiór danych jest analizowany w celu określenia związku między zmiennymi. Tworząc różne wykresy, aby sprawdzić relacje między zmiennymi.

sns.countplot ('Strona główna', hue = 'WINorLOSS', data = df) plt.show ()

Powyżej znajduje się relacja między procentem wygranych / przegranych w meczu u siebie / na wyjeździe. Spodobniemożemy wykreślić wykres zależności między innymi odpowiednimi wpisami w danych.

Przekształcanie danych

Zbiór danych jest modyfikowany zgodnie ze zmienną docelową. Usuniemy wszystkie wartości null i wartości ciągów również z DataFrame.

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

Sprawdzimy wszystkie nieistotne dane, takie jak wartości null i wartości, które nie będą wymagane podczas budowania modelu predykcyjnego. Jeśli w zbiorze danych NBA, którego używamy, nie ma wartości null, będziemy kontynuować podział danych.

Testuj i trenuj dane

W celu wykonania modelu dane są dzielone na dane testowe i dane dotyczące pociągu. Dane są dzielone przy użyciu rozszerzenia train_test_split . Dane tutaj są podzielone w stosunku 70:30.

Teraz dla przewidywanie modelu funkcja regresji logistycznej jest implementowana poprzez importowanie modelu regresji logistycznej do modułu sklearn.

Model jest następnie dopasowywany do zestawu pociągowego za pomocą funkcji dopasowania. Następnie prognozowanie jest wykonywane za pomocą funkcji przewidywania.

from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression ze sklearn.metrics import Classification_report from sklearn.metrics import confusion_matrix, compliance_score x = df.drop ('Home', axis = 1) y = df ['Home'] 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) predykcje = logmodel.predict (x_test) print (klasyfikacja_est., prognozy) print (confusion_matrix (y_test, przewidywania)) print (dokładność_score (y_test, prognozy))

php wstaw do tablicy $ table

Raport klasyfikacyjny:

Raport klasyfikacji wyświetla plik Precyzja , Przypomnijmy, F1 i Wsparcie oceny dla modelu.

Precyzja Wynik oznacza poziom, do którego prognoza wykonana przez model jest dokładna. Precyzja gry u siebie jest taka 0.62 a na wyjeździe jest 0.58 .

Odwołanie to kwota, do której model może przewidzieć wynik. Przypomnijmy, że gra domowa to 0.57 a na mecz wyjazdowy jest 0.64 . Wyniki F1 i Support to ilość danych przetestowanych pod kątem prognoz. W zestawie danych NBA testowane dane dla gry domowej to 1662 a na wyjeździe jest 1586 .

Macierz zamieszania:

Macierz nieporozumień to tabela opisująca działanie modelu predykcyjnego. Macierz pomyłki zawiera wartości rzeczywiste i wartości przewidywane. możemy użyć tych wartości do obliczenia wyniku dokładności modelu.

Mapa termiczna macierzy zamieszania:

Narysujmy mapę cieplną macierzy zamieszania przy użyciu porostu morskiego i aby zwizualizować model predykcyjny, który zbudowaliśmy. Aby wykreślić mapę cieplną, niezbędna jest następująca składnia.

sns.heatmap (pd.DataFrame (confusion_matrix (y_test, predykcje))) plt.show ()

Patrząc na mapę popularności, możemy wywnioskować, co następuje:

  • Spośród wszystkich prognoz klasyfikator przewidywał tak w sumie 1730 razy, z czego 1012 było faktycznie tak.
  • Spośród wszystkich prognoz klasyfikator nie przewidział łącznie 1518 razy, z czego 944 to faktyczne nie.

Dzięki tej analizie macierzy pomyłki możemy podsumować wynik dokładności dla naszego modelu predykcyjnego.

Ocena dokładności:

Wynik dokładności to procent dokładności prognoz wykonanych przez model. W przypadku naszego modelu wynik dokładności wynosi 0,60, co jest dość dokładne. Ale im wyższy wynik dokładności, tym skuteczniejszy jest model predykcyjny. Zawsze musisz dążyć do uzyskania wyższego wyniku dokładności, aby uzyskać lepszy model prognozowania.

Postępując zgodnie z krokami omówionymi powyżej, przewidzieliśmy możliwość rozegrania meczu u siebie / na wyjeździe przy użyciu zestawu danych NBA. Po przeanalizowaniu raportu klasyfikacyjnego możemy założyć możliwość gry u siebie / na wyjeździe.

Na tym blogu omówiliśmy regresję logistyczną w koncepcjach Pythona, czym różni się ona od podejścia liniowego. Omówiliśmy również demonstrację przy użyciu zestawu danych NBA. Aby uzyskać więcej informacji i praktyki, możesz użyć wybranego zestawu danych i wykonać omówione kroki, aby zaimplementować regresję logistyczną w Pythonie.

Zapoznaj się również z różnymi blogami Data-Science na platformie edureka, aby opanować analityka danych w sobie.

Jeśli chcesz nauczyć się języka Python i zbudować karierę w nauce o danych, sprawdź nasze interaktywne, online na żywo tutaj, który zapewnia wsparcie 24 * 7, które poprowadzi Cię przez cały okres nauki.
Masz pytanie? Wspomnij o tym w komentarzach, a my skontaktujemy się z Tobą.