Regresja logistyczna dla uczenia maszynowego: kompletny przewodnik
Opublikowany: 2021-10-04Modele 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!
Regresja logistyczna dzieli się zasadniczo na trzy typy: 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ść. Regresja logistyczna dla uczenia maszynowego wykorzystuje funkcję Sigmoid, aby znaleźć najlepszą krzywą dopasowania.Ile rodzajów regresji logistycznej dla uczenia maszynowego jest możliwych?
1. Binarny
2. Wielomianowy
3. Porządkowa. Do czego służy regresja logistyczna w uczeniu maszynowym?
Z jakiej funkcji korzysta regresja logistyczna dla uczenia maszynowego?