Maybaygiare.org

Blog Network

logisztikai regresszió valós példával a Pythonban

Ahmed Gad képe a
Megosztás

Facebook
Twitter
LinkedIn
Reddit

ebben az oktatóanyagban megtanulhatja a logisztikai regressziót. Itt megtudhatja, mi is pontosan a logisztikai regresszió, és láthat egy példát a Python-nal. A logisztikai regresszió a gépi tanulás fontos témája, és megpróbálom a lehető legegyszerűbbé tenni.

a huszadik század elején a logisztikai regressziót elsősorban a biológiában alkalmazták, ezt követően néhány társadalomtudományi alkalmazásban használták. Ha kíváncsi, megkérdezheti, hol kell használni a logisztikai regressziót? Tehát logisztikai regressziót használunk, amikor független változónk kategorikus.

példák:

  • megjósolni, hogy egy személy vesz egy autót (1) vagy (0)
  • tudni, hogy a daganat rosszindulatú (1) vagy (0)

most nézzük meg a forgatókönyvet, ahol meg kell osztályozni, hogy egy személy vesz egy autót, vagy sem. Ebben az esetben, ha egyszerű lineáris regressziót használunk, meg kell adnunk egy küszöböt, amelyen az osztályozás elvégezhető.

tegyük fel, hogy a tényleges osztály az a személy, aki megvásárolja az autót, és az előre jelzett folyamatos érték 0,45, az általunk figyelembe vett küszöb pedig 0.5, akkor ezt az adatpontot úgy kell tekinteni, mint az a személy, aki nem vásárolja meg az autót, és ez rossz előrejelzéshez vezet.

tehát arra a következtetésre jutunk, hogy nem használhatunk lineáris regressziót az ilyen típusú osztályozási problémákhoz. Mint tudjuk, a lineáris regresszió korlátozott, tehát itt jön a logisztikai regresszió, ahol az érték szigorúan 0-tól 1-ig terjed.

egyszerű logisztikai regresszió:

Kimenet: 0 vagy 1
hipotézis: K = W * X + B
H(x) = sigmoid(K)

Sigmoid funkció:

ábra. Sigmoid funkció
ábra. A Sigmoid függvény grafikonja.

A logisztikai regresszió típusai:

bináris logisztikai regresszió

csak két lehetséges kimenetel(Kategória).
példa: a személy vesz egy autót, vagy sem.

multinomiális logisztikai regresszió

Több mint két kategória lehetséges rendelés nélkül.

ordinális logisztikai regresszió

Több mint két kategória lehetséges megrendeléssel.

valós példa Pythonnal:

most logisztikai regresszióval oldunk meg egy valós problémát. Van egy adathalmaz, amelynek 5 oszlopok nevezetesen: User ID, nem, életkor, EstimatedSalary és vásárolt. Most olyan modellt kell építenünk, amely megjósolhatja, hogy az adott paraméteren egy személy vásárol-e autót vagy sem.

ábra. Adatkészlet

A modell felépítésének lépései:

1. Importing the libraries

itt importálunk könyvtárakat, amelyek szükségesek lesznek a modell felépítéséhez.

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

Adatkészletünket egy változóba (azaz adatkészletbe) importáljuk pandák használatával.

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

adatkészletünkben az életkorot és az estimatedsalary-t független változónak, a megvásárolt pedig függő változónak tekintjük.

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

itt X független változó, y pedig függő változó.

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

most az Adatkészletünket képzési és Tesztadatokra osztjuk. Képzési adatok fogják használni, hogy a vonat a
logisztikai modell és vizsgálati adatok fogják használni, hogy érvényesítse a modell. A Sklearn segítségével megosztjuk az adatainkat. Majd import train_test_split származó sklearn.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

most elvégezzük a funkció méretezését, hogy az adatainkat 0 és 1 között méretezzük a jobb pontosság érdekében.
itt a méretezés azért fontos, mert óriási különbség van az életkor és a becsült szint között.

  • StandardScaler importálása a sklearn – ból.előfeldolgozás
  • ezután készítsen sc_x példányt az objektum StandardScaler
  • majd illessze be és alakítsa át az X_train-t és alakítsa át az X_test-et
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

most felépítjük osztályozónkat (logisztikai).

  • Logisticregression importálása a sklearn-ból.linear_model
  • készítsen egy példányosztályozót a LogisticRegression objektumról, és adja meg a
    random_state = 0 értéket, hogy minden alkalommal ugyanazt az eredményt kapja.
  • most használja ezt az osztályozót, hogy illeszkedjen X_train és y_train
from sklearn.linear_model import LogisticRegressionclassifier = LogisticRegression(random_state=0)classifier.fit(X_train, y_train)

egészségedre!! A fenti parancs végrehajtása után lesz egy osztályozó, amely megjósolhatja, hogy egy személy vásárol-e autót vagy sem.

most használja az osztályozót a Tesztadatkészlet előrejelzéséhez, és keresse meg a pontosságot a Confusion matrix segítségével.

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

most megkapjuk y_pred

most már tudjuk használni y_test (tényleges eredmény) és y_pred ( várható eredmény), hogy a pontosság a modell.

7. Making the Confusion Matrix

a Zavartsági mátrix használatával megkaphatjuk modellünk pontosságát.

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

kapsz egy mátrix cm-t .

használja a cm-t a pontosság kiszámításához az alábbiak szerint:

pontosság = (cm + cm) / (összes vizsgálati adatpont)

itt 89% – os pontosságot kapunk . Egészségedre!! jó pontosságot kapunk.

végül megjelenítjük az Edzéskészlet eredményét és a tesztkészlet eredményét. A matplotlib segítségével ábrázoljuk az Adathalmazunkat.

az edzés eredményének megjelenítése

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()

a teszt eredményének megjelenítése

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()

most elkészítheti saját osztályozóját a logisztikai regresszióhoz.
köszönöm!! Kódolj Tovább !!

Megjegyzés: Ez egy vendég bejegyzés, és a vélemény ebben a cikkben a Vendég író. Ha bármilyen problémája van a www.marktechpost.com please contact at [email protected]

Advertisement

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.