Kuinka suorittaa logistinen regressio Pythonissa?



Logistinen regressio Pythonissa sklearnin avulla ennustamaan lopputulos määrittämällä riippuvan ja yhden tai useamman itsenäisen muuttujan suhde.

Logistinen regressio Pythonissa on ennakoiva analyysitekniikka. Sitä käytetään myös koneoppimisessa binääriluokitteluongelmiin. Tässä blogissa käymme läpi seuraavat aiheet ymmärtämään logistista regressiota Pythonissa:

  1. Mikä on regressio?
  2. Logistinen regressio Pythonissa
  3. Logistinen regressio vs lineaarinen regressio
  4. Käytä koteloita
  5. Esittely

Voit myös viitata tähän yksityiskohtaiseen opastukseen pythonin logistisesta regressiosta esittelyllä paremman ymmärryksen saamiseksi tai käydä läpi hallita logistista regressiota.





Mikä on regressio?

analyysi on tehokas tilastollinen analyysitekniikka. A riippuvainen kiinnostuksemme muuttujaa käytetään ennustamaan muiden arvoja riippumattomia muuttujia tietojoukossa.

Regressio törmää intuitiivisella tavalla koko ajan. Kuten ennustaa sää aikaisempien sääolosuhteiden tietojoukon avulla.



Se käyttää monia tekniikoita tuloksen analysoimiseksi ja ennustamiseksi, mutta painopiste on pääasiassa riippuvan muuttujan ja yhden tai useamman itsenäisen muuttujan välinen suhde.

analyysi ennustaa tuloksen binäärimuuttujassa, jolla on vain kaksi mahdollista tulosta.



Logistinen regressio Pythonissa

Se on tekniikka analysoida tietojoukko, jolla on riippuva muuttuja ja yksi tai useampi itsenäinen muuttuja ennustamaan tulos binäärimuuttujassa, mikä tarkoittaa, että sillä on vain kaksi lopputulosta.

Riippuva muuttuja on kategorinen luonnossa. Riippuvaan muuttujaan viitataan myös nimellä kohdemuuttuja ja riippumattomia muuttujia kutsutaan ennustajat .

Logistinen regressio on lineaarisen regression erityistapaus, jossa ennustamme lopputuloksen vain kategorisessa muuttujassa. Se ennustaa tapahtuman todennäköisyyden lokitoiminnon avulla.

Käytämme Sigmoidi funktio / käyrä ennustaa kategorinen arvo. Kynnysarvo päättää lopputuloksen (voitto / häviö).

Lineaarinen regressioyhtälö: y = β0 + β1X1 + β2X2…. + βnXn

  • Y tarkoittaa riippuvaa muuttujaa, joka on ennustettava.
  • β0 on Y-leikkaus, joka on periaatteessa y-akselia koskettavan linjan piste.
  • β1 on viivan kaltevuus (kaltevuus voi olla negatiivinen tai positiivinen riippuen riippuvan muuttujan ja riippumattoman muuttujan välisestä suhteesta.)
  • X edustaa tässä riippumatonta muuttujaa, jota käytetään ennustamaan tuloksesta riippuvainen arvo.

Sigmoiditoiminto: p = 1/1 + e-Y

Käytä sigmoidifunktiota lineaarisella regressioyhtälöllä.

logistinen regressio python-edurekassa

Logistisen regressioyhtälö: p = 1/1 + e- (β0 + β1X1 + β2X2…. + βnXn)

Katsotaanpa tarkastella erityyppisiä logistista regressiota.

Tyypit logistista regressiota

miten oppia visuaalinen studio
    • Binaarinen logistinen regressio - sillä on vain kaksi mahdollista tulosta. Esimerkki - kyllä ​​tai ei
    • Monikokoinen logistinen regressio - Siinä on kolme tai useampia nimelliskategorioita, esimerkiksi kissa, koira, norsu.
    • Järjestyslogistinen regressio - Siinä on kolme tai useampia järjestysluokkia, mikä tarkoittaa, että luokat ovat järjestyksessä. Esimerkki - käyttäjien arviot (1-5).

Lineaarinen Vs-logistinen regressio

Lineaarisella regressiolla voi olla äärettömät mahdolliset arvot, logistisella regressiolla on selvät tulokset .

Lineaarista regressiota käytetään, kun vastemuuttuja on luonteeltaan jatkuva, mutta logistista regressiota käytetään, kun vastemuuttuja on luonteeltaan kategorinen.

Ennakkomaksun ennustaminen pankissa käyttämällä aiemmin tapahtuman yksityiskohtia on esimerkki logistisesta regressiosta, kun taas jatkuva tuotos, kuten osakemarkkinapisteet, on esimerkki lineaarisesta regressiosta.

Käytä koteloita

Seuraavassa on käyttötapauksia, joissa voimme käyttää logistista regressiota.

Sääennuste

Sääennusteet ovat seurausta loogisesta regressiosta. Tässä analysoimme edellisten säätietojen tietoja ja ennustamme tietyn päivän mahdollisen tuloksen. Mutta looginen regressio ennustaisi vain kategoriset tiedot, kuten jos se sataa vai ei.

Sairauden määrittäminen

Me voimmekäyttäälooginen regressio potilaan sairaushistorian avulla ennustamaan sairauden positiivinen vai negatiivinen joka tapauksessa.

Otetaan esimerkkitietojoukko rakentaa ennustusmalli logistista regressiota käyttämällä.

Demo

Aiomme rakentaa ennustusmallinkäyttämällälooginen regressio Pythonissa avun avulla/tietojoukko,Tässäaiomme käsitellä seuraavia vaiheita loogisen regressioon saavuttamiseksi.

Kerätä dataa

Ensimmäinen askel logistisen regression toteuttamiseksi on tietojen kerääminen. Ladataan tietojoukon sisältävä csv-tiedosto ohjelmiin pandojen avulla. Käytämme NBA-tietoja ennustusmallin rakentamiseen kotipelien tai vieraspelien mahdollisuuden ennustamiseksi analysoimalla asiaankuuluvien tietojen välistä suhdetta.

tuo pandat pd-tuontinumerona np-tuonti merisyntyneinä sns-tuontina matplotlib.pyplot muodossa plt df = pd.read_csv (r'C: UsersMohammadWaseemDocumentsdata.csv ') tulosta (df.head (5))

Saat kaikki tiedot luettavaan muotoon analyysin helpottamiseksi. Ja sitten voit määrittää riippuvat ja riippumattomat muuttujat mallillesi.

Tietojen analysointi

Tietojoukko analysoidaan muuttujien välisen suhteen määrittämiseksi. Luomalla erilaisia ​​kaavioita muuttujien välisen suhteen tarkistamiseksi.

sns.countplot ('Koti', sävy = 'WINorLOSS', data = df) plt.show ()

Yllä on suhde voiton / häviön prosenttiosuuteen koti- / vieraspelissä. SsamoinVoimme piirtää kaavion suhteesta muiden asiaankuuluvien tietojen välillä.

Tietojen kiertäminen

Tietojoukkoa muokataan kohdemuuttujan mukaan. Poistamme kaikki null-arvot ja merkkijonon arvot myös DataFrame-kehyksestä.

tulosta (df.isnull (). summa ())

Tarkistamme kaikki merkityksettömät tiedot, kuten nolla-arvot ja arvot, joita ei tarvita ennustusmallia rakennettaessa. Jos käytetyssä NBA-tietojoukossa ei ole nolla-arvoja, jatkamme tietojen jakamista.

Testi- ja junatiedot

Mallin suorituskykyä varten tiedot jaetaan testitietoihin ja junatietoihin. Tiedot jaetaan käyttämällä train_test_split . Tiedot on jaettu suhteeseen 70:30.

Nyt mallien ennustus logistinen regressiotoiminto toteutetaan tuomalla logistinen regressiomalli sklearn-moduuliin.

Sitten malli sovitetaan junayksikköön sovitustoiminnon avulla. Tämän jälkeen ennuste suoritetaan ennustetoiminnolla.

from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics tuonti luokitus_raportti sklearn.metrics tuonti confusion_matrix, tarkkuus_pisteet x = df.drop ('koti', akseli = 1) y = df ['koti'] x_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 0.33, random_state = 1) logmodel = LogisticRegression () logmodel.fit (x_train, y_train) ennusteet = logmodel.predict (x_test) tulosta (luokituksen_raportti (y) tulosta (sekaannusmatriisi (y_testi, ennusteet)) tulosta (tarkkuus_pisteet (y_testi, ennusteet))

Luokitusraportti:

Luokitteluraportti näyttää Tarkkuus , Recall, F1 ja tuki pisteet mallille.

Tarkkuus pisteet tarkoittaa tasoa, johon saakka mallin tekemä ennuste on tarkka. Kotipelin tarkkuus on 0,62 ja vieraspelissä on 0,58 .

Palauttaa mieleen on summa, johon asti malli voi ennustaa lopputuloksen. Muistutus kotipelistä on 0.57 ja vieraspelissä on 0,64 . F1 ja tukipisteet ovat ennusteita varten testattujen tietojen määrä. NBA-tietojoukossa kotipelien testatut tiedot ovat 1662 ja vieraspelissä on 1586 .

Sekaannusmatriisi:

Sekaannusmatriisi on taulukko, joka kuvaa ennustusmallin suorituskykyä. Sekaannusmatriisi sisältää todelliset arvot ja ennustetut arvot. Voimme käyttää näitä arvoja mallin tarkkuuspisteiden laskemiseen.

Sekaannusmatriisin lämpökartta:

Antaa piirtää sekakuva-matriisin lämpökartan käyttämällä merenpoikasia ja visualisoida rakentamamme ennustusmalli. Lämpökartan piirtäminen edellyttää seuraavaa syntaksia.

sns.heatmap (pd.DataFrame (sekaannuksen_matriisi (y_testi, ennusteet))) plt.show ()

Tarkastelemalla lämpökarttaa voimme päätellä seuraavaa:

  • Kaikista ennusteista luokittelija ennusti kyllä ​​yhteensä 1730 kertaa, joista 1012 oli varsinaista kyllä.
  • kaikista ennusteista luokittelija ennusti ei yhteensä 1518 kertaa, joista 944 oli todellisia ei.

Tämän sekaannusmatriisin analyysin avulla voimme päätellä ennustusmallimme tarkkuuspisteet.

ero ohittamisen ja ylikuormituksen välillä Java-sovelluksessa

Tarkkuuspisteet:

Tarkkuuspisteet ovat mallin tekemien ennusteiden prosenttiosuus tarkkuudesta. Mallissamme tarkkuuspisteet ovat 0,60, mikä on huomattavan varsin tarkka. Mutta mitä enemmän tarkkuuspisteet, sitä tehokkaampi olet ennustusmalli. Sinun on aina pyrittävä korkeampiin tarkkuuspisteisiin parempaa ennustusmallia varten.

Noudattamalla edellä käsiteltyjä vaiheita, olemme ennustaneet mahdollisuuden pelata koti- / vierasottelua NBA-tietojoukon avulla. Kun olet analysoinut luokitusraportin, voimme olettaa mahdollisuuden pelata koti / vieras.

Tässä blogissa olemme keskustelleet logistisesta regressiosta python-käsitteissä, kuinka se eroaa lineaarisesta lähestymistavasta. Olemme myös esittäneet esittelyn NBA-tietojoukolla. Saadaksesi lisää oivalluksia ja käytäntöjä, voit käyttää valitsemaasi tietojoukkoa ja seurata keskusteltuja vaiheita logistisen regression toteuttamiseksi Pythonissa.

Tutustu myös tietotekniikan eri blogeihin edureka-alustalla hallitaksesi datatieteilijää sinussa.

Jos haluat oppia Pythonia ja rakentaa uraa datatieteessä, tutustu interaktiiviseen live-online-palveluumme Tässä mukana tulee 24 * 7 -tuki, joka ohjaa sinua koko oppimisjaksosi ajan.
Onko sinulla kysymys? Mainitse se kommenteissa ja palaamme sinuun.