GeeksforGeeks

Edellytys: Linear Regression
Tässä artikkelissa käsitellään logistisen regression perusteita ja sen toteutusta Pythonissa. Logistinen regressio on periaatteessa valvottu luokittelualgoritmi. Luokitusongelmassa kohdemuuttuja (tai tuotos), y, voi ottaa vain diskreettejä arvoja annetulle joukolle piirteitä (tai syötteitä), X.

Vastoin yleistä käsitystä, logistinen regressio ON regressiomalli. Malli rakentaa regressiomallin ennustaakseen todennäköisyyden, että tietty tietosisältö kuuluu luokkaan, joka on numeroitu ”1”. Aivan kuten lineaarinen regressio olettaa, että data noudattaa lineaarista funktiota, logistinen regressio mallintaa datan sigmoidifunktion avulla.

Logistisesta regressiosta tulee luokittelutekniikka vasta, kun kuvaan otetaan mukaan päätöksentekokynnys. Kynnysarvon asettaminen on erittäin tärkeä näkökohta logistisessa regressiossa, ja se on riippuvainen itse luokitusongelmasta.

Kynnysarvon arvoa koskevaan päätökseen vaikuttavat suurelta osin tarkkuuden ja palautuksen arvot. Ihannetapauksessa haluamme, että sekä precision että recall ovat 1, mutta näin on harvoin. Jos kyseessä on Precision-Recall-vaihtokauppa, käytämme seuraavia argumentteja päättäessämme kynnysarvosta:-

1. Alhainen tarkkuus/korkea palautus: Sovelluksissa, joissa haluamme vähentää väärien negatiivisten tulosten määrää vähentämättä välttämättä väärien positiivisten tulosten määrää, valitsemme päätösarvon, jonka Precision-arvo on alhainen tai Recall-arvo korkea. Esimerkiksi syöpädiagnoosisovelluksessa emme halua, että yksikään sairastunut potilas luokitellaan ei-sairastuneeksi välittämättä siitä, onko potilaan syöpä diagnosoitu virheellisesti. Tämä johtuu siitä, että syövän puuttuminen voidaan havaita muilla lääketieteellisillä sairauksilla, mutta sairauden läsnäoloa ei voida havaita jo hylätyllä ehdokkaalla.

2. Korkea Precision/Low Recall: Sovelluksissa, joissa haluamme vähentää väärien positiivisten tulosten määrää vähentämättä välttämättä väärien negatiivisten tulosten määrää, valitsemme päätösarvon, jolla on korkea Precision-arvo tai matala Recall-arvo. Jos esimerkiksi luokittelemme asiakkaita, reagoivatko he positiivisesti vai negatiivisesti personoituun mainokseen, haluamme olla ehdottoman varmoja siitä, että asiakas reagoi mainokseen positiivisesti, koska muuten negatiivinen reaktio voi aiheuttaa potentiaalisen myynnin menetyksen asiakkaalta.

Logistinen regressio voidaan luokitella luokkien lukumäärän perusteella seuraavasti:

  1. binominen: Kohdemuuttujalla voi olla vain 2 mahdollista tyyppiä: ”
  2. multinomiaalinen: kohdemuuttujalla voi olla kolme tai useampia mahdollisia tyyppejä, jotka eivät ole järjestettyjä (eli tyypeillä ei ole kvantitatiivista merkitystä), kuten ”sairaus A” vs. ”sairaus B” vs. ”sairaus C”.
  3. ordinaalinen: se käsittelee kohdemuuttujia, joilla on järjestetyt kategoriat. Esimerkiksi testitulos voidaan luokitella seuraavasti: ”erittäin huono”, ”huono”, ”hyvä”, ”erittäin hyvä”. Tällöin kullekin luokalle voidaan antaa pistemäärä, kuten 0, 1, 2, 3.

Aluksi tutkitaan logistisen regression yksinkertaisinta muotoa eli binomista logistista regressiota.

Binominen logistinen regressio

Harkitaan esimerkkitietoaineistoa, joka kuvaa opintotuntien määrää tenttituloksen kanssa. Tulos voi saada vain kaksi arvoa, eli hyväksytty(1) tai hylätty(0):


. meillä on
i.e. y on kategorinen kohdemuuttuja, joka voi ottaa vain kaksi mahdollista tyyppiä: ”0” tai ”1”.
Mallimme yleistämiseksi oletamme, että:

  • Tietokannassa on ’p’ ominaismuuttujaa ja ’n’ havaintoa.
  • Ominaisuusmatriisi esitetään seuraavasti:
    Tässä, tarkoittaa ominaisuuden arvoja havainnolle.
    Tässä, pidämme kiinni konventiosta, jossa annetaan = 1. (Jatka lukemista, ymmärrät logiikan hetken kuluttua).
  • Havainto, , voidaan esittää seuraavasti:
  • edustaa ennustettua vastetta havainnolle, eli . Kaavaa, jota käytämme laskemiseen, kutsutaan hypoteesiksi.

Jos olet käynyt läpi lineaarisen regression, sinun pitäisi muistaa, että lineaarisessa regressiossa hypoteesi, jota käytimme ennustamiseen, oli:
jossa, ovat regressiokertoimet.
Tulkoon regressiokerroinmatriisi/vektori, olevan:
Tällöin tiiviimmässä muodossa,

Syy siihen, että otimme = 1, on nyt melko selvä.
Meidän piti tehdä matriisitulo, mutta alkuperäisessä hypoteesikaavassa ei ollut
todellista kerrointa. Niinpä määrittelimme = 1.

Jos nyt yritämme soveltaa lineaarista regressiota edellä mainittuun ongelmaan, saamme todennäköisesti jatkuvia arvoja käyttämällä edellä käsittelemäämme hypoteesia. Ei myöskään ole järkevää ottaa arvoja, jotka ovat suurempia kuin 1 tai pienempiä kuin 0.
Siten hypoteesiin tehdään joitakin muutoksia luokittelua varten:
jossa,
on nimeltään logistinen funktio tai sigmoidifunktio.
Tässä on kuvaaja, joka esittää g(z):
Voidaan päätellä yllä olevasta kuvaajasta, että:

  • g(z) pyrkii kohti 1:tä, kun
  • g(z) pyrkii kohti 0:ta, kun
  • g(z) on aina rajattu 0:n ja 1:n välille

Voidaan siis nyt määritellä ehdolliset todennäköisyydet kahdelle merkinnälle(0 ja 1) havainnon kohdalla seuraavasti:
Voidaan kirjoittaa se tiiviimmin seuraavasti:
Nyt määritellään toinen termi, parametrien todennäköisyys seuraavasti:

Likelihood ei ole mitään muuta kuin datan(harjoitusesimerkkien) todennäköisyys, kun annetaan malli ja tietyt parametrien arvot(tässä, ). Se mittaa datan antamaa tukea kullekin mahdolliselle parametrin arvolle. Saamme sen kertomalla kaikki annetut.

Ja helpompia laskutoimituksia varten otamme log likelihoodin:
Logistisen regression kustannusfunktio on verrannollinen parametrien likelihoodin käänteisarvoon. Näin ollen voimme saada lausekkeen kustannusfunktiolle, J käyttämällä log likelihood -yhtälöä seuraavasti:
ja tavoitteenamme on estimoida niin, että kustannusfunktio minimoituu !!

Käyttämällä Gradientti laskeutumisalgoritmia

Aluksi otamme osittaisderivaatat w:lle.r.t kukin johtaaksemme stokastisen gradienttilaskeutumissäännön(esitämme tässä vain lopullisen johdetun arvon):
Tässä, y ja h(x) edustavat vastevektoria ja ennustettua vastevektoria(vastaavasti). Lisäksi on vektori, joka edustaa ominaisuuden havaintoarvoja.
Nyt, saadaksemme min ,
jota kutsutaan oppimisnopeudeksi ja se on asetettava eksplisiittisesti.
Katsotaanpa edellä mainitun tekniikan python-toteutusta esimerkkitietoaineistoon (ladatkaa se täältä):



Huomautus: Gradientti laskeutuminen on yksi monista tavoista arvioida .
Periaatteessa nämä ovat edistyneempiä algoritmeja, jotka voidaan helposti ajaa Pythonissa, kun olet määrittänyt kustannusfunktiosi ja gradientit. Nämä algoritmit ovat:

  • BFGS(Broyden-Fletcher-Goldfarb-Shanno algoritmi)
  • L-BFGS(Kuten BFGS, mutta käyttää rajoitetusti muistia)
  • Conjugate Gradient

Hyötyjä/haittoja minkä tahansa näistä algoritmeista käyttämisessä Gradientin laskeutumiseen verrattuna:

  • Hyötyjä
    • Ei tarvitse valita oppimisnopeutta
    • Se toimii usein nopeammin (ei aina)
    • Voi approksimoida gradienttia numeerisesti puolestasi (ei aina toimi hyvin)
  • Haitat
    • Kompleksisempi
    • Molempi musta laatikko, ellei opi yksityiskohtia

Multinomial Logistic Regression

In Multinomial Logistic Regression, lähtömuuttujalla voi olla enemmän kuin kaksi mahdollista diskreettia lähtöä. Tarkastellaan Digit Dataset -joukkoa. Tässä ulostulomuuttuja on numeron arvo, joka voi ottaa arvoja (0, 12, 3, 4, 5, 6, 7, 8, 9).
Alhaalla on esitetty Multinomial Logisitc Regression toteutus käyttäen scikit-learnia ennusteiden tekemiseen digit-tietokannasta.



Logistic Regression model accuracy(in %): 95.6884561892

Viimeiseksi, tässä muutamia seikkoja logistisesta regressiosta pohdittavaksi:

  • Ei oleta lineaarista suhdetta riippuvaisen muuttujan ja riippumattomien muuttujien välille, mutta olettaa lineaarista suhdetta selitettävien muuttujien logiittisen suhteen ja vasteen välillä.
  • Riippumattomia muuttujia voivat olla vaikka potenssitermit tai jotkut muut alkuperäisten riippumattomien muuttujien epälineaariset muunnokset.
  • Riippuvaisen muuttujan EI tarvitse olla normaalijakautunut, mutta tyypillisesti se olettaa jakauman eksponenttiperheestä (esim. binominen, Poisson, multinominen, normaali,…); binäärinen logistinen regressio olettaa vastauksen binomijakauman.
  • Varianssin homogeenisuuden EI tarvitse täyttyä.
  • Virheiden täytyy olla riippumattomia, mutta EI normaalijakautuneita.
  • Se käyttää maksimiluotettavuusestimaatiota (MLE) eikä tavallisia pienimpiä neliöitä (OLS) parametrien estimoinnissa, ja näin ollen tukeutuu suurten otosten approksimaatioihin.

Tämän artikkelin on kirjoittanut Nikhil Kumar. Jos pidät GeeksforGeeksistä ja haluat osallistua, voit myös kirjoittaa artikkelin osoitteessa contribute.geeksforgeeks.org tai lähettää artikkelisi sähköpostitse osoitteeseen [email protected]. Näet artikkelisi näkyvän GeeksforGeeksin pääsivulla ja autat muita nörttejä.

Tunnit(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 0 0 0 0 0 0 0 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

Vastaa

Sähköpostiosoitettasi ei julkaista.