GeeksforGeeks

Předpoklad: Tento článek pojednává o základech logistické regrese a její implementaci v jazyce Python. Logistická regrese je v podstatě klasifikační algoritmus pod dohledem. V klasifikačním problému může cílová proměnná(neboli výstup), y, nabývat pouze diskrétních hodnot pro danou množinu rysů(neboli vstupů), X.

Na rozdíl od všeobecného přesvědčení logistická regrese JE regresní model. Tento model vytváří regresní model pro předpověď pravděpodobnosti, že daný datový vstup patří do kategorie očíslované jako „1“. Stejně jako lineární regrese předpokládá, že data se řídí lineární funkcí, logistická regrese modeluje data pomocí sigmoidní funkce.

Logistická regrese se stává klasifikační technikou teprve tehdy, když do hry vstoupí rozhodovací práh. Nastavení prahové hodnoty je velmi důležitým aspektem logistické regrese a závisí na samotném klasifikačním problému.

Rozhodování o hodnotě prahové hodnoty je významně ovlivněno hodnotami precision a recall. V ideálním případě chceme, aby jak precision, tak recall byly rovny 1, ale to se stává jen zřídka. V případě kompromisu mezi přesností a odvolávkou používáme k rozhodnutí o prahové hodnotě následující argumenty:-

1. Nízká přesnost/vysoká zpětná vazba: V aplikacích, kde chceme snížit počet falešně negativních výsledků, aniž bychom nutně snížili počet falešně pozitivních výsledků, volíme rozhodovací hodnotu, která má nízkou hodnotu Precision nebo vysokou hodnotu Recall. Například v aplikaci pro diagnostiku rakoviny nechceme, aby byl každý postižený pacient klasifikován jako nepostižený, aniž bychom věnovali velkou pozornost tomu, zda je pacientovi nesprávně diagnostikována rakovina. Je to proto, že nepřítomnost rakoviny lze zjistit pomocí dalších lékařských onemocnění, ale přítomnost nemoci nelze zjistit u již odmítnutého kandidáta.

2. Vysoká hodnota Precision/Low Recall: V aplikacích, kde chceme snížit počet falešně pozitivních výsledků, aniž bychom museli nutně snížit počet falešně negativních výsledků, volíme rozhodovací hodnotu, která má vysokou hodnotu Precision nebo nízkou hodnotu Recall. Například pokud klasifikujeme zákazníky, zda budou na personalizovanou reklamu reagovat pozitivně nebo negativně, chceme si být naprosto jisti, že zákazník bude na reklamu reagovat pozitivně, protože jinak může negativní reakce způsobit ztrátu potenciálního prodeje od zákazníka.

Na základě počtu kategorií lze logistickou regresi klasifikovat jako:

  1. binomickou: cílová proměnná může mít pouze 2 možné typy: „
  2. multinomický: cílová proměnná může mít 3 nebo více možných typů, které nejsou uspořádány (tj. typy nemají kvantitativní význam), jako například „nemoc A“ vs „nemoc B“ vs „nemoc C“.
  3. ordinální: zabývá se cílovými proměnnými s uspořádanými kategoriemi. Například výsledek testu může být kategorizován jako: „velmi špatný“, „špatný“, „dobrý“, „velmi dobrý“. Zde lze každé kategorii přiřadit skóre jako 0, 1, 2, 3.

Nejprve prozkoumáme nejjednodušší formu logistické regrese, tj. binomickou logistickou regresi.

Binomická logistická regrese

Podívejme se na příklad souboru dat, který mapuje počet hodin studia s výsledkem zkoušky. Výsledek může nabývat pouze dvou hodnot, a to prospěl(1) nebo neprospěl(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

Takže, máme
i.e. y je kategoriální cílová proměnná, která může nabývat pouze dvou možných typů: „0“ nebo „1“.
Pro zobecnění našeho modelu předpokládáme, že:

  • Soubor dat má „p“ feature proměnných a „n“ pozorování.
  • Matice rysů je reprezentována jako:
    Zde označuje hodnoty rysu pro pozorování.
    Zde zachováváme konvenci nechat = 1. (Čtěte dál, logiku pochopíte za chvíli).
  • Pozorování, , lze reprezentovat jako:
  • představuje předpokládanou odpověď pro pozorování, tj. Vzorec, který používáme pro výpočet, se nazývá hypotéza.

Pokud jste již prošli lineární regresí, měli byste si vzpomenout, že v lineární regresi hypotéza, kterou jsme použili pro předpověď, byla:
kde , jsou regresní koeficienty.
Nechť matice/vektor regresních koeficientů, je:
Tedy v kompaktnější podobě:

Důvod, proč jsme vzali = 1, je nyní celkem jasný.
Potřebovali jsme provést maticový součin, ale v původním vzorci hypotézy nebylo žádné
aktuální násobení do. Definovali jsme tedy = 1.

Pokud se nyní pokusíme aplikovat lineární regresi na výše uvedený problém, pravděpodobně dostaneme spojité hodnoty pomocí hypotézy, o které jsme hovořili výše. Také nemá smysl, abychom přijímali hodnoty větší než 1 nebo menší než 0.
Pro klasifikaci tedy provedeme některé úpravy hypotézy:
kde,
se nazývá logistická funkce nebo sigmoidní funkce.
Tady je graf znázorňující g(z):
Z výše uvedeného grafu můžeme odvodit, že:

  • g(z) směřuje k 1 jako
  • g(z) směřuje k 0 jako
  • g(z) je vždy ohraničena mezi 0 a 1

Takže nyní můžeme definovat podmíněné pravděpodobnosti pro 2 označení (0 a 1) pro pozorování jako:
Můžeme to zapsat kompaktněji jako:
Nyní definujeme další pojem, pravděpodobnost parametrů jako:

Věrohodnost není nic jiného než pravděpodobnost dat(trénovacích příkladů), daná modelem a konkrétními hodnotami parametrů(zde, ). Měří podporu, kterou poskytují data pro každou možnou hodnotu . Získáme ji vynásobením všech pro daných .

A pro snadnější výpočty bereme logaritmickou pravděpodobnost:
Nákladová funkce pro logistickou regresi je úměrná inverzní hodnotě pravděpodobnosti parametrů. Proto můžeme získat výraz pro nákladovou funkci J pomocí rovnice logaritmické věrohodnosti jako:
a naším cílem je odhadnout tak, aby nákladová funkce byla minimalizována !!!

Pomocí algoritmu Gradient descent

Nejprve vezmeme parciální derivace w.r.t každého z nich, abychom odvodili pravidlo stochastického gradientního sestupu(zde uvádíme pouze konečnou odvozenou hodnotu):
Zde y a h(x) představují vektor odezvy a předpovídaný vektor odezvy(v tomto pořadí). Také je vektor představující hodnoty pozorování pro funkci.
Nyní, abychom získali min ,
kde se nazývá míra učení a je třeba ji explicitně nastavit.
Podívejme se na pythonovskou implementaci výše uvedené techniky na ukázkové datové sadě (stáhněte si ji odsud):

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


Poznámka: Gradient descent je jedním z mnoha způsobů odhadu .
V podstatě se jedná o pokročilejší algoritmy, které lze snadno spustit v Pythonu, jakmile definujete nákladovou funkci a gradienty. Tyto algoritmy jsou:

  • BFGS(Broyden-Fletcher-Goldfarb-Shanno algoritmus)
  • L-BFGS(Jako BFGS, ale používá omezenou paměť)
  • Konjugovaný gradient

Výhody/nevýhody použití některého z těchto algoritmů oproti Gradient descent:

  • Výhody
    • Nepotřebujete volit rychlost učení
    • Často běží rychleji (ne vždy)
    • Může za vás numericky aproximovat gradient (ne vždy to vyjde dobře)
    • Může za vás aproximovat gradient (ne vždy to vyjde dobře)
  • Nevýhody
    • Složitější
    • Větší černá skříňka, pokud se nenaučíte specifika

Multinomická logistická regrese

V multinomické logistické regresi, může mít výstupní proměnná více než dva možné diskrétní výstupy. Uvažujme datovou sadu Digit. Zde je výstupní proměnnou hodnota číslice, která může nabývat hodnot z (0, 12, 3, 4, 5, 6, 7, 8, 9).
Níže je uvedena implementace Multinomial Logisitc Regression pomocí scikit-learn k provádění předpovědí na digit datasetu.



Logistic Regression model accuracy(in %): 95.6884561892

Nakonec uvádíme několik bodů o logistické regresi k zamyšlení:

  • Nepředpokládá lineární vztah mezi závislou proměnnou a nezávislými proměnnými, ale předpokládá lineární vztah mezi logitem vysvětlujících proměnných a odpovědí.
  • Nezávislé proměnné mohou být i mocninné členy nebo některé jiné nelineární transformace původních nezávislých proměnných.
  • Závisle proměnná NEMUSÍ být normálně rozdělena, ale obvykle se předpokládá rozdělení z exponenciální rodiny (např. binomické, Poissonovo, multinomické, normální,…); binární logistická regrese předpokládá binomické rozdělení odpovědi.
  • Homogenita rozptylu NEMUSÍ být splněna.
  • Odhady musí být nezávislé, ale NE normálně rozdělené.
  • K odhadu parametrů používá odhad maximální věrohodnosti (MLE), nikoli obyčejné nejmenší čtverce (OLS), a spoléhá se tedy na aproximace velkých vzorků.

Tento článek napsal Nikhil Kumar. Pokud se vám GeeksforGeeks líbí a chtěli byste přispět, můžete také napsat článek pomocí stránky contribute.geeksforgeeks.org nebo poslat svůj článek na adresu [email protected]. Uvidíte, jak se váš článek objeví na hlavní stránce GeeksforGeeks, a pomůžete tak ostatním geekům.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.