Regresja logistyczna dla uczenia maszynowego: kompletny przewodnik

Opublikowany: 2021-10-04

Modele uczenia maszynowego wymagają do działania algorytmów. W zależności od zestawu warunków określony model ML może działać najlepiej przy użyciu jednego lub drugiego algorytmu. W rezultacie inżynierowie i entuzjaści uczenia maszynowego powinni zdawać sobie sprawę z różnych rodzajów algorytmów, które mogą być używane w różnych kontekstach – aby wiedzieć, którego użyć, gdy nadejdzie czas. Nigdy nie ma jednego uniwersalnego rozwiązania w uczeniu maszynowym, a ulepszanie za pomocą różnych algorytmów może zapewnić pożądane rezultaty.

Na przykład musisz już wiedzieć o regresji liniowej. Jednak tego algorytmu po prostu nie można zastosować do zmiennych kategorycznie zależnych. Tutaj przydaje się regresja logistyczna.

W uczeniu maszynowym regresja logistyczna jest nadzorowaną metodą uczenia używaną do przewidywania prawdopodobieństwa zmiennej zależnej lub docelowej. Za pomocą regresji logistycznej można przewidzieć i ustalić relacje między zmienną zależną a jedną lub większą liczbą zmiennych niezależnych.

Równania i modele regresji logistycznej są zwykle używane do analiz predykcyjnych w klasyfikacji binarnej. Możesz ich również użyć do klasyfikacji wieloklasowej.

Oto jak wygląda równanie regresji logistycznej dla uczenia maszynowego:

logit(p) = ln(p/(1-p)) = h0+h1X1+h2X2+h3X3….+hkXk

Gdzie;

p= prawdopodobieństwo wystąpienia cechy

x1,x2,..xk = zbiór cech wejściowych

h1,h2,….hk = wartości parametryczne do oszacowania w równaniu regresji logistycznej.

Spis treści

Rodzaje modeli regresji logistycznej w uczeniu maszynowym

W oparciu o sposób wykorzystania regresji logistycznej, typy modeli regresji logistycznej można sklasyfikować w następujący sposób:

1. Binarny model regresji logistycznej

Jest to jeden z najpopularniejszych modeli regresji stosowanych w regresji logistycznej. Pomaga kategoryzować dane na dwie klasy i przewidywać wartość nowych danych wejściowych jako należących do jednej z dwóch klas. Na przykład guz pacjenta może być łagodny lub złośliwy, ale nigdy oba.

2. Wielomianowy model regresji logistycznej

Model ten pomaga klasyfikować zmienne docelowe w więcej niż dwóch klasach – bez względu na jakąkolwiek istotność ilościową. Przykładem może być przewidywanie rodzaju żywności, którą dana osoba może zamówić na podstawie jej preferencji żywieniowych i wcześniejszych doświadczeń.

Dołącz do kursu uczenia maszynowego online z najlepszych uniwersytetów na świecie — studiów magisterskich, programów podyplomowych dla kadry kierowniczej i zaawansowanego programu certyfikacji w zakresie uczenia maszynowego i sztucznej inteligencji, aby przyspieszyć swoją karierę.

3. Porządkowy model regresji logistycznej

Model ten służy do klasyfikacji zmiennej docelowej. Na przykład, wyniki ucznia na egzaminie można sklasyfikować jako słabe, dobre i doskonałe w porządku hierarchicznym. W ten sposób dane są podzielone na trzy odrębne kategorie, przy czym każda klasa ma określony poziom ważności.

Równania regresji logistycznej można użyć w kilku przypadkach, takich jak wykrywanie spamu, klasyfikacja guzów, kategoryzacja według płci i wiele innych. Przyjrzyjmy się dwóm najczęstszym przykładom użycia równania regresji logistycznej w uczeniu maszynowym, aby pomóc Ci lepiej zrozumieć.

Przykładowe przypadki użycia równania regresji logistycznej

Przykład 1: Identyfikowanie spamu

Rozważ klasę 1, jeśli wiadomość e-mail jest spamem, a 0, jeśli e-mail nie jest. Aby to wykryć, analizuje się wiele atrybutów z treści wiadomości. Obejmują one:

  • Nadawca
  • Błędy ortograficzne
  • Słowa kluczowe w e-mailu, takie jak „dane bankowe”, „szczęście”, „zwycięzca”, „gratulacje”.
  • Dane kontaktowe lub adres URL w e-mailu

Te wyodrębnione dane można następnie wprowadzić do równania regresji logistycznej dla uczenia maszynowego, które przeanalizuje wszystkie dane wejściowe i dostarczy wynik od 0 do 1. Jeśli wynik jest większy niż 0, ale mniejszy niż 0,5, wiadomość e-mail zostanie zaklasyfikowana jako spam i jeśli wynik wynosi od 0,5 do 1, wiadomość jest oznaczana jako niebędąca spamem.

Przykład 2: Identyfikacja oszustwa związanego z kartą kredytową

Korzystając z równań regresji logistycznej lub modeli uczenia maszynowego opartych na regresji logistycznej, banki mogą szybko identyfikować nieuczciwe transakcje kartą kredytową. W tym celu szczegóły, takie jak PoS, numer karty, wartość transakcji, dane transakcji i tym podobne, są wprowadzane do modelu regresji logistycznej, który decyduje, czy dana transakcja jest oryginalna (0) czy fałszywa (1). Na przykład, jeśli wartość zakupu jest zbyt wysoka i odbiega od typowych wartości, model regresji przypisuje wartość (pomiędzy 0,5 a 1), która klasyfikuje transakcję jako oszustwo.

Działanie regresji logistycznej w uczeniu maszynowym

Regresja logistyczna działa przy użyciu funkcji Sigmoid do mapowania przewidywań na prawdopodobieństwa wyjściowe. Ta funkcja jest krzywą w kształcie litery S, która przedstawia przewidywane wartości z zakresu od 0 do 1. Wartości są następnie wykreślane w kierunku marginesów na górze i na dole osi Y, przy użyciu 0 i 1 jako etykiet. Następnie, w zależności od tych wartości, można sklasyfikować zmienne niezależne.

Oto jak wygląda funkcja Sigmoid:

Funkcja Sigmoid opiera się na następującym równaniu:

y=1/(1+e^x)

Gdzie e^x= stała wykładnicza o wartości 2,718.

Powyższe równanie funkcji sigmoidy zapewnia przewidywaną wartość (y) jako zero, jeśli x jest uważane za ujemne. Jeśli x jest dużą liczbą dodatnią, przewidywana wartość jest bliska jedności.

Budowanie modelu regresji logistycznej w Pythonie

Przejdźmy przez proces budowania modelu regresji logistycznej w Pythonie. W tym celu użyjmy zestawu danych sieci społecznościowej do przeprowadzenia analizy regresji i spróbujmy przewidzieć, czy dana osoba kupi konkretny samochód. Oto jak wyglądają kroki.

Krok 1: Importowanie bibliotek i zestawu danych

Rozpoczyna się od zaimportowania bibliotek potrzebnych do zbudowania modelu. Obejmuje to Pandy, Numpy i Matplotlib. Musimy również zaimportować zbiór danych, z którym będziemy pracować. Oto jak wygląda kod:

importuj numer jako np

importuj matplotlib.pyplot jako pt

importuj pandy jako PD

zbiór danych = pd.read_csv('Sieć_społecznościowa.csv')

Krok 2: Podział na zmienne zależne i niezależne

Teraz nadszedł czas, aby podzielić podawane dane na zmienne zależne i niezależne. W tym przykładzie rozważymy wartość zakupu jako zmienną zależną podczas szacowanego wynagrodzenia i wieku osób jako zmienne niezależne.

x = zbiór danych.iloc[:, [2,3]].wartości

y = zbiór danych.iloc[:, 4].wartości

Krok 3: Podział zestawu danych na zestaw treningowy i zestaw testowy

Niezbędne jest podzielenie zbioru danych na określone zbiory uczące i testowe. Zestaw uczący będzie trenował równanie regresji logistycznej, podczas gdy dane testowe zostaną użyte do walidacji uczenia modelu i przetestowania go. Sklearn służy do dzielenia danego zestawu danych na dwa zestawy. Korzystamy z funkcji train_split_, określając ilość danych, które chcemy przeznaczyć na szkolenie i testowanie.

ze sklearn.model_selection importuj train_test_split

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0,33, random_state = 0)

Jak widać, zdefiniowaliśmy rozmiar testu jako 33% całego zestawu danych. Tak więc pozostałe 66% zostanie wykorzystane jako dane treningowe.

Krok 4: Skalowanie

Aby poprawić dokładność modelu regresji logistycznej, musisz przeskalować dane i wprowadzić wartości, które mogą mieć bardzo różny charakter.

ze sklearn.preprocessing import StandardScaler

sc_X = Standardowy skaler()

X_train = sc_X.fit_transform(X_train)

X_test = sc_X.transform(X_test)

Krok 5: Budowa modelu regresji logistycznej

Gdy to zrobisz, musisz zbudować model regresji logistycznej i dopasować go do zestawu szkoleniowego. Zacznij od zaimportowania algorytmu regresji logistycznej ze Sklearn.

ze sklearn.linear_model import LogisticRegression

Następnie utwórz klasyfikator instancji, aby dopasować dane treningowe.

klasyfikator = LogisticRegression(random_state=0)

classifier.fit(x_train, y_train)

Następnie utwórz prognozy w testowym zestawie danych.

y_pred = klasyfikator.predict(x_test)

Na koniec sprawdź wydajność swojego modelu regresji logistycznej za pomocą macierzy Confusion.

ze sklearn.metrics importuj pomyłkę_macierzy

cm = pomyłka_macierz(y_test, y_pred)

acc = wynik_dokładności(y_test, y_pred)

drukuj(wg)

nadruk (cm)

Teraz możesz użyć Matplotlib do wizualizacji całego zestawu danych, w tym zestawów treningowych i testowych!

Na zakończenie

Regresja logistyczna to jedno z narzędzi, które pomagają w tworzeniu modeli i algorytmów uczenia maszynowego. Podobnie istnieje wiele innych algorytmów, które są używane w zależności od danego przypadku użycia. Jednak, aby wiedzieć, którego algorytmu użyć, powinieneś znać wszystkie możliwe opcje. Dopiero wtedy będziesz w stanie wybrać najbardziej odpowiedni algorytm dla swojego zestawu danych.

Zapoznaj się z naszym programem Executive PG w uczeniu maszynowym zaprojektowanym w sposób, który zabierze Cię od zera i pomoże ci rozwinąć twoje umiejętności na sam szczyt – abyś był w stanie rozwiązać każdy rzeczywisty problem z uczeniem maszynowym. Sprawdź różne kursy i zapisz się na ten, który jest dla Ciebie odpowiedni. Dołącz do upGrad i skorzystaj z holistycznego środowiska uczenia się i wsparcia w zakresie stażu!

Ile rodzajów regresji logistycznej dla uczenia maszynowego jest możliwych?

Regresja logistyczna dzieli się zasadniczo na trzy typy:
1. Binarny
2. Wielomianowy
3. Porządkowa.

Do czego służy regresja logistyczna w uczeniu maszynowym?

Regresja logistyczna jest jedną z nadzorowanych metod uczenia się stosowaną do znajdowania i budowania najlepiej dopasowanych relacji między zmiennymi zależnymi i niezależnymi w celu dokonania właściwych prognoz na przyszłość.

Z jakiej funkcji korzysta regresja logistyczna dla uczenia maszynowego?

Regresja logistyczna dla uczenia maszynowego wykorzystuje funkcję Sigmoid, aby znaleźć najlepszą krzywą dopasowania.