Maybaygiare.org

Blog Network

regresja logistyczna z rzeczywistym przykładem w Pythonie

Zdjęcie Ahmeda gada z
Share
Facebook
Twitter
LinkedIn
Reddit

w tym samouczku nauczysz się regresji logistycznej. Tutaj dowiesz się, czym dokładnie jest regresja logistyczna, a także zobaczysz przykład z Pythonem. Regresja logistyczna jest ważnym tematem uczenia maszynowego i postaram się to uprościć.

na początku XX wieku regresja logistyczna była używana głównie w biologii, później była używana w niektórych zastosowaniach nauk społecznych. Jeśli jesteś ciekawy, możesz zapytać, gdzie powinniśmy zastosować regresję logistyczną? Używamy regresji logistycznej, gdy nasza zmienna niezależna jest kategoryczna.

przykłady:

  • aby przewidzieć, czy dana osoba kupi samochód (1) lub (0)
  • aby wiedzieć, czy guz jest złośliwy (1) lub (0)

rozważmy teraz scenariusz, w którym musisz sklasyfikować, czy dana osoba kupi samochód, czy nie. W tym przypadku, jeśli użyjemy prostej regresji liniowej, będziemy musieli określić próg, na którym można dokonać klasyfikacji.

powiedzmy, że rzeczywistą klasą jest osoba, która kupi samochód, a przewidywana wartość ciągła wynosi 0,45, a próg, który rozważaliśmy, wynosi 0.5, następnie ten punkt danych będzie uważany za osobę, która nie kupi samochodu, a to doprowadzi do niewłaściwej prognozy.

więc wnioskujemy, że nie możemy użyć regresji liniowej dla tego typu problemu klasyfikacji. Jak wiemy regresja liniowa jest ograniczona, więc tutaj pojawia się regresja logistyczna, gdzie wartość ściśle waha się od 0 do 1.

prosta regresja logistyczna:

Wyjście: 0 LUB 1
hipoteza: K = W * X + b
hΘ(x) = esica(K)

funkcja esicy:

rys. Funkcja esicy
rys. Wykres funkcji esicy.

rodzaje regresji logistycznej:

binarna regresja logistyczna

tylko dwa możliwe wyniki(Kategoria).
przykład: osoba kupi samochód lub nie.

regresja logistyczna

Więcej niż dwie kategorie możliwe bez zamawiania.

porządkowa regresja logistyczna

przy zamówieniu możliwe są więcej niż dwie kategorie.

rzeczywisty przykład z Pythonem:

teraz rozwiążemy rzeczywisty problem z regresją logistyczną. Mamy zestaw danych zawierający 5 kolumn a mianowicie: identyfikator użytkownika, płeć,wiek, szacowany i zakupiony. Teraz musimy zbudować model, który potrafi przewidzieć, czy na danym parametrze osoba kupi samochód, czy nie.

rys. Zestaw danych

kroki do zbudowania modelu:

1. Importing the libraries

tutaj zaimportujemy biblioteki, które będą potrzebne do zbudowania modelu.

import numpy as npimport matplotlib.pyplot as pltimport pandas as pd
2. Importing the Data set

zaimportujemy nasz zestaw danych do zmiennej (tj. zbioru danych) za pomocą pand.

dataset = pd.read_csv('Social_Network_Ads.csv')
3. Splitting our Data set in Dependent and Independent variables.

w naszym zbiorze danych weźmiemy pod uwagę wiek i oszacowanie jako zmienną niezależną i zakupioną jako zmienną zależną.

X = dataset.iloc].valuesy = dataset.iloc.values

tutaj X jest zmienną niezależną, a y zmienną zależną.

3. Splitting the Data set into the Training Set and Test Set

teraz podzielimy nasz zestaw danych na dane treningowe i dane testowe. Dane szkoleniowe zostaną wykorzystane do szkolenia naszego modelu logistycznego ,a dane testowe zostaną wykorzystane do walidacji naszego modelu. Użyjemy Sklearn do podziału naszych danych. Zaimportujemy train_test_split ze sklepu.model_selection

from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)
4. Feature Scaling

teraz wykonamy skalowanie funkcji, aby skalować nasze dane między 0 a 1, Aby uzyskać lepszą dokładność.
tutaj skalowanie jest ważne, ponieważ istnieje ogromna różnica między wiekiem a szacowanym wiekiem.

  • Import StandardScaler ze sklepu.preprocessing
  • następnie utwórz instancję sc_X obiektu StandardScaler
  • następnie dopasuj i przekształć X_train i przekształć X_test
from sklearn.preprocessing import StandardScalersc_X = StandardScaler()X_train = sc_X.fit_transform(X_train)X_test = sc_X.transform(X_test)
5. Fitting Logistic Regression to the Training Set

teraz zbudujemy nasz klasyfikator (logistyczny).

  • Import LogisticRegression ze sklepu.linear_model
  • tworzy klasyfikator instancji obiektu LogisticRegression i daje
    random_state = 0, aby uzyskać ten sam wynik za każdym razem.
  • teraz Użyj tego klasyfikatora, aby dopasować X_train i y_train
from sklearn.linear_model import LogisticRegressionclassifier = LogisticRegression(random_state=0)classifier.fit(X_train, y_train)

Pozdrawiam!! Po wykonaniu powyższego polecenia będziesz miał klasyfikator, który może przewidzieć, czy dana osoba kupi samochód, czy nie.

teraz użyj klasyfikatora, aby przewidzieć zestaw danych testowych i znaleźć dokładność za pomocą macierzy pomieszania.

6. Predicting the Test set results
y_pred = classifier.predict(X_test)

teraz otrzymamy y_pred

teraz możemy użyć y_test (rzeczywisty wynik) i y_pred ( przewidywany wynik), aby uzyskać dokładność naszego modelu.

7. Making the Confusion Matrix

używając macierzy splątania możemy uzyskać dokładność naszego modelu.

from sklearn.metrics import confusion_matrixcm = confusion_matrix(y_test, y_pred)

otrzymasz matrycę cm .

użyj cm, aby obliczyć dokładność, jak pokazano poniżej:

Accuracy = ( cm + cm) /(Total test data points)

tutaj otrzymujemy dokładność 89 % . Zdrowie!! mamy dobrą celność.

na koniec Zwizualizujemy wynik zestawu treningowego i wynik zestawu testowego. Użyjemy matplotliba do wykreślenia naszego zbioru danych.

Wizualizacja wyniku zestawu treningowego

from matplotlib.colors import ListedColormapX_set, y_set = X_train, y_trainX1, X2 = np.meshgrid(np.arange(start = X_set.min() - 1, stop = X_set.max() + 1, step = 0.01), np.arange(start = X_set.min() - 1, stop = X_set.max() + 1, step = 0.01))plt.contourf(X1, X2, classifier.predict(np.array().T).reshape(X1.shape), alpha = 0.75, cmap = ListedColormap(('red', 'green')))plt.xlim(X1.min(), X1.max())plt.ylim(X2.min(), X2.max())for i, j in enumerate(np.unique(y_set)): plt.scatter(X_set, X_set, c = ListedColormap(('red', 'green'))(i), label = j)plt.title('Logistic Regression (Training set)')plt.xlabel('Age')plt.ylabel('Estimated Salary')plt.legend()plt.show()

Wizualizacja wyniku zestawu testowego

from matplotlib.colors import ListedColormapX_set, y_set = X_test, y_testX1, X2 = np.meshgrid(np.arange(start = X_set.min() - 1, stop = X_set.max() + 1, step = 0.01), np.arange(start = X_set.min() - 1, stop = X_set.max() + 1, step = 0.01))plt.contourf(X1, X2, classifier.predict(np.array().T).reshape(X1.shape), alpha = 0.75, cmap = ListedColormap(('red', 'green')))plt.xlim(X1.min(), X1.max())plt.ylim(X2.min(), X2.max())for i, j in enumerate(np.unique(y_set)): plt.scatter(X_set, X_set, c = ListedColormap(('red', 'green'))(i), label = j)plt.title('Logistic Regression (Test set)')plt.xlabel('Age')plt.ylabel('Estimated Salary')plt.legend()plt.show()

teraz możesz zbudować własny klasyfikator regresji logistycznej.
dzięki!! Koduj !!

uwaga: jest to post gościnny,a opinia w tym artykule jest autorstwa gościa. Jeśli masz jakiekolwiek problemy z którymś z artykułów zamieszczonych na www.marktechpost.com please contact at [email protected]

Advertisement

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.