GeeksforGeeks

Előfeltétel: Linear Regression
Ez a cikk a logisztikus regresszió alapjait és Pythonban történő megvalósítását tárgyalja. A logisztikus regresszió alapvetően egy felügyelt osztályozási algoritmus. Az osztályozási problémában a célváltozó (vagy kimenet), y, csak diszkrét értékeket vehet fel a jellemzők (vagy bemenetek) adott halmaza, X esetén.

A közhiedelemmel ellentétben a logisztikus regresszió EGY regressziós modell. A modell egy regressziós modellt épít fel annak valószínűségére, hogy egy adott adatbevitel az “1”-ként számozott kategóriába tartozik. Ahogy a lineáris regresszió feltételezi, hogy az adatok egy lineáris függvényt követnek, a logisztikus regresszió a szigmoid függvény segítségével modellezi az adatokat.

A logisztikus regresszió csak akkor válik osztályozási technikává, ha egy döntési küszöböt hozunk a képbe. A küszöbérték beállítása nagyon fontos szempont a logisztikus regresszióban, és magától az osztályozási problémától függ.

A küszöbérték értékére vonatkozó döntést nagymértékben befolyásolja a pontosság és a visszahívás értéke. Ideális esetben azt szeretnénk, ha mind a pontosság, mind a visszahívás értéke 1 lenne, de ez ritkán van így. Precision-Recall kompromisszum esetén a következő érveket használjuk a küszöbérték meghatározásához:-

1. Alacsony Precision/High Recall: Azokban az alkalmazásokban, ahol csökkenteni akarjuk a hamis negatívumok számát anélkül, hogy feltétlenül csökkentenénk a hamis pozitívumok számát, olyan döntési értéket választunk, amelynek alacsony a Precision értéke vagy magas a Recall értéke. Például egy rákdiagnosztikai alkalmazásban nem akarjuk, hogy bármelyik érintett beteget nem érintettnek minősítsük anélkül, hogy nagy figyelmet fordítanánk arra, hogy a betegnél tévesen diagnosztizálták-e a rákot. Ennek az az oka, hogy a rák hiánya további orvosi betegségekkel kimutatható, de a betegség jelenléte nem mutatható ki egy már elutasított jelöltnél.

2. Nagy Precizitás/alacsony Recall: Azokban az alkalmazásokban, ahol csökkenteni akarjuk a hamis pozitív eredmények számát anélkül, hogy feltétlenül csökkentenénk a hamis negatív eredmények számát, olyan döntési értéket választunk, amelynek magas a Precision értéke vagy alacsony a Recall értéke. Ha például osztályozzuk az ügyfeleket, hogy pozitívan vagy negatívan fognak-e reagálni egy személyre szabott reklámra, akkor teljesen biztosak akarunk lenni abban, hogy az ügyfél pozitívan fog reagálni a reklámra, mert ellenkező esetben a negatív reakció potenciális eladási veszteséget okozhat az ügyféltől.

A kategóriák száma alapján a logisztikus regresszió a következőképpen osztályozható:

  1. binomiális: a célváltozónak csak 2 lehetséges típusa lehet: “
  2. multinomiális: a célváltozónak 3 vagy több lehetséges típusa lehet, amelyek nem rendezettek (azaz a típusoknak nincs mennyiségi jelentőségük), mint például “A betegség” vs. “B betegség” vs. “C betegség”.
  3. ordinális: rendezett kategóriákkal rendelkező célváltozókkal foglalkozik. Például egy teszteredmény a következő kategóriákba sorolható: “nagyon rossz”, “rossz”, “jó”, “nagyon jó”. Itt minden kategória kaphat egy pontszámot, például 0, 1, 2, 3.

Először is vizsgáljuk meg a logisztikus regresszió legegyszerűbb formáját, a binomiális logisztikus regressziót.

Binomiális logisztikus regresszió

Nézzünk egy példaadathalmazt, amely a tanulással töltött órák számát egy vizsgaeredményhez kapcsolja. Az eredmény csak két értéket vehet fel, nevezetesen sikeres(1) vagy sikertelen(0):


Hours(x) 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00 5.50
Pass(y) 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1

Sz, van
i.e. y egy kategorikus célváltozó, amely csak két lehetséges típust vehet fel: “0” vagy “1”.
Modellünk általánosítása érdekében feltételezzük, hogy:

  • Az adathalmaznak “p” jellemzőváltozója és “n” megfigyelése van.
  • A feature-mátrixot a következőképpen ábrázoljuk:
    Itt a megfigyeléshez tartozó feature-értékeket jelöli.
    Itt megtartjuk azt a konvenciót, hogy hagyjuk = 1. (Olvasson tovább, néhány pillanat múlva megérti a logikát).
  • A megfigyelés, , a következőképpen ábrázolható:
  • a megfigyeléshez tartozó előre jelzett választ jelenti, azaz . A számításhoz használt képletet hipotézisnek nevezzük.

Ha már végigment a lineáris regresszión, akkor emlékeznie kell arra, hogy a lineáris regresszióban az előrejelzéshez használt hipotézis:
ahol, a regressziós együtthatók.
Legyen a regressziós együttható mátrix/vektor, legyen:
Ezután, tömörebb formában,

Az, hogy miért vettük = 1, most már elég világos.
Mátrixszorzatot kellett csinálnunk, de az eredeti hipotézisképletben nem volt
aktuális szorzat. Tehát = 1-t definiáltunk.

Most, ha megpróbáljuk alkalmazni a lineáris regressziót a fenti problémára, akkor valószínűleg folytonos értékeket kapunk a fent tárgyalt hipotézis segítségével. Továbbá nincs értelme annak, hogy 1-nél nagyobb vagy 0-nál kisebb értékeket vegyünk fel.
Az osztályozáshoz a hipotézisen néhány módosítást hajtunk végre:
ahol,
a logisztikus függvényt vagy a szigmoid függvényt nevezzük.
Itt van egy grafikon, amely g(z) értékét mutatja:
A fenti grafikonból következtethetünk arra, hogy:

  • g(z) 1 felé tendál, mivel
  • g(z) 0 felé tendál, mivel
  • g(z) mindig 0 és 1 között van korlátozva

Így most a megfigyelés 2 címkéjére(0 és 1) a következő feltételes valószínűségeket határozhatjuk meg:
Kompaktabban így írhatjuk le:
Most, definiálunk egy másik kifejezést, a paraméterek valószínűségét:

A valószínűség nem más, mint az adatok(képzési példák) valószínűsége egy modell és adott paraméterértékek(itt, ) mellett. Azt méri, hogy az adatok milyen támogatást nyújtanak az adatok minden lehetséges értékéhez. Úgy kapjuk meg, hogy megszorozzuk az összes adott .

És a könnyebb számítások érdekében log likelihoodot veszünk:
A logisztikus regresszió költségfüggvénye arányos a paraméterek likelihoodjának inverzével. Ezért a log likelihood egyenlet segítségével megkaphatjuk a költségfüggvény, J kifejezését:
és a célunk az, hogy úgy becsüljünk, hogy a költségfüggvény minimalizálódjon !!!

Gradiens süllyedés algoritmus

Először is vegyük w parciális deriváltjait.r.t egyesével, hogy levezessük a sztochasztikus gradiens süllyedés szabályát(itt csak a végső származtatott értéket mutatjuk be):
Itt y és h(x) a válaszvektort és az előre jelzett válaszvektort (illetve) jelöli. Továbbá, az a vektor, amely a jellemző megfigyelési értékeit képviseli.
Most, annak érdekében, hogy min-t kapjunk,
amelyet tanulási sebességnek nevezünk, és explicit módon kell beállítani.
Lássuk a fenti technika python implementációját egy mintaadatkészleten (letölthető innen):

2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00 5.50


Megjegyzés: A gradiens süllyedés egy a sokféle becslési mód közül .
Lényegében ezek fejlettebb algoritmusok, amelyek könnyen futtathatók Pythonban, miután meghatároztuk a költségfüggvényünket és a gradienseket. Ezek az algoritmusok:

  • BFGS(Broyden-Fletcher-Goldfarb-Shanno algoritmus)
  • L-BFGS(Mint a BFGS, de korlátozott memóriát használ)
  • Conjugate Gradient

Az algoritmusok bármelyikének előnyei/hátrányai a Gradiens süllyedéssel szemben:

  • Előnyei
    • Nem kell kiválasztani a tanulási sebességet
    • Gyakran gyorsabban fut (nem mindig van így)
    • Numerikusan közelítheti a gradienst helyettünk (nem mindig működik jól)
  • Hátrányok
    • Egyre összetettebb
    • Egyre inkább fekete doboz, hacsak nem tanulod meg a sajátosságokat

Multinomiális logisztikus regresszió

A multinomiális logisztikus regresszióban, a kimeneti változónak kettőnél több lehetséges diszkrét kimenete lehet. Tekintsük a Digit adathalmazt. Itt a kimeneti változó a számjegy értéke, amely a (0, 12, 3, 4, 5, 6, 7, 8, 9) értékek közül vehet fel értékeket.
Az alábbiakban a Multinomial Logisitc Regression implementációja látható scikit-learn segítségével, hogy előrejelzéseket készítsen a digit adathalmazon.



Logistic Regression model accuracy(in %): 95.6884561892

Végül álljon itt néhány pont a logisztikus regresszióról, amin érdemes elgondolkodni:

  • NEM feltételez lineáris kapcsolatot a függő változó és a független változók között, de lineáris kapcsolatot feltételez a magyarázó változók logaritása és a válasz között.
  • A független változók lehetnek akár a hatványtételek vagy az eredeti független változók egyéb nemlineáris transzformációi is.
  • A függő változónak NEM kell normális eloszlásúnak lennie, de jellemzően egy exponenciális családba tartozó eloszlást feltételez (pl. binomiális, Poisson, multinomiális, normális,…); a bináris logisztikus regresszió a válasz binomiális eloszlását feltételezi.
  • A variancia homogenitásának NEM kell teljesülnie.
  • A hibáknak függetlennek kell lenniük, de NEM normális eloszlásúak.
  • A paraméterek becsléséhez a szokásos legkisebb négyzetek (OLS) helyett maximális valószínűségű becslést (MLE) használ, és így nagymintás közelítésekre támaszkodik.

Ez a cikk Nikhil Kumar közreműködésével készült. Ha tetszik a GeeksforGeeks és szeretnél hozzájárulni, írhatsz cikket a contribute.geeksforgeeks.org oldalon, vagy elküldheted a cikkedet a [email protected] címre. Láthatod, hogy a cikked megjelenik a GeeksforGeeks főoldalán, és segíthetsz más geekeknek.

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

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