Kako izvesti logistično regresijo v Pythonu?



Logistična regresija v Pythonu z uporabo sklearn za napovedovanje izida z določitvijo razmerja med odvisnimi in eno ali več neodvisnimi spremenljivkami.

Logistična regresija v Pythonu je tehnika napovedne analize. Uporablja se tudi pri strojnem učenju za binarne klasifikacijske probleme. V tem blogu bomo razumeli naslednje teme za razumevanje logistične regresije v Pythonu:

  1. Kaj je regresija?
  2. Logistična regresija v Pythonu
  3. Logistična regresija vs linearna regresija
  4. Uporabite zadeve
  5. Demonstracija

Za boljše razumevanje si lahko ogledate tudi to podrobno vadnico o logistični regresiji v pythonu z demonstracijo ali pa si oglejte za obvladovanje logistične regresije.





Kaj je regresija?

analiza je močna tehnika statistične analize. A odvisna spremenljivka našega zanimanja se uporablja za napovedovanje vrednosti drugih neodvisne spremenljivke v naboru podatkov.

Regresijo ves čas srečujemo na intuitiven način. Tako kot napovedovanje vremena z uporabo nabora podatkov o vremenskih razmerah v preteklosti.



Za analizo in napovedovanje izida uporablja številne tehnike, poudarek pa je predvsem na razmerje med odvisno spremenljivko in eno ali več neodvisnimi spremenljivkami.

analiza napoveduje rezultat v binarni spremenljivki, ki ima le dva možna rezultata.



Logistična regresija v Pythonu

To je tehnika za analizo nabora podatkov, ki ima odvisno spremenljivko in eno ali več neodvisnih spremenljivk za napovedovanje izida v binarni spremenljivki, kar pomeni, da bo imel le dva rezultata.

Odvisna spremenljivka je kategorično v naravi. Odvisna spremenljivka se imenuje tudi ciljna spremenljivka neodvisne spremenljivke pa se imenujejo napovedovalci .

Logistična regresija je poseben primer linearne regresije, pri kateri izid predvidevamo le v kategorični spremenljivki. S funkcijo dnevnika napove verjetnost dogodka.

Uporabljamo Sigmoidna funkcija / krivulja za napovedovanje kategorične vrednosti. Vrednost praga odloča o izidu (zmaga / poraz).

Enačba linearne regresije: y = β0 + β1X1 + β2X2…. + βnXn

  • Y pomeni odvisno spremenljivko, ki jo je treba predvideti.
  • β0 je presek Y, ki je v bistvu točka na črti, ki se dotika osi y.
  • β1 je naklon premice (naklon je lahko negativen ali pozitiven, odvisno od razmerja med odvisno spremenljivko in neodvisno spremenljivko.)
  • X tukaj predstavlja neodvisno spremenljivko, ki se uporablja za napovedovanje naše posledično odvisne vrednosti.

Sigmoidna funkcija: p = 1/1 + e-Ja

Uporabi sigmoidno funkcijo na enačbi linearne regresije.

logistična regresija v python-edureki

Enačba logistične regresije: p = 1/1 + e- (β0 + β1X1 + β2X2…. + βnXn)

Oglejmo si različne tipe logistične regresije.

Vrste logistične regresije

prenos datotek v primerek ec2 linux
    • Binarna logistična regresija - ima le dva možna rezultata. Primer - da ali ne
    • Multinomna logistična regresija - ima tri ali več nominalnih kategorij. Primer: mačka, pes, slon.
    • Redna logistična regresija - ima tri ali več vrstnih kategorij, kar pomeni, da bodo kategorije razvrščene po vrstnem redu. Primer- ocene uporabnikov (1-5).

Linearna vs logistična regresija

Medtem ko ima lahko linearna regresija neskončne možne vrednosti, logistična regresija ima določene rezultate .

Linearna regresija se uporablja, kadar je spremenljivka odziva neprekinjene narave, logistična regresija pa, kadar je spremenljivka odziva kategorične narave.

Napovedovanje neplačnikov v banki z uporabo podrobnosti o transakcijah v preteklosti je primer logistične regresije, medtem ko je neprekinjen izhod, kot je rezultat na borzi, primer linearne regresije.

Uporabite zadeve

Sledijo primeri uporabe, v katerih lahko uporabimo logistično regresijo.

Vremenska napoved

Vremenske napovedi so rezultat logične regresije. Tu analiziramo podatke iz prejšnjih vremenskih poročil in napovemo možen izid za določen dan. Toda logična regresija bi napovedovala samo kategorične podatke, na primer, če bo deževalo ali ne.

Ugotavljanje bolezni

Mi lahkouporabalogična regresija s pomočjo bolnikove anamneze za napovedovanje, ali je bolezen v vsakem primeru pozitivna ali negativna.

Vzemimo vzorec nabora podatkov za izdelavo modela napovedovanja z uporabo logistične regresije.

Demo

Zgradili bomo model napovedovanjauporabologična regresija v Pythonu s pomočjoodnabor podatkov,v tempokrivali bomo naslednje korake za doseganje logične regresije.

Zbiranje podatkov

Prvi korak za izvedbo logistične regresije je zbiranje podatkov. Datoteko csv, ki vsebuje nabor podatkov, bomo v programe naložili z uporabo pand. Podatke NBA uporabljamo za izdelavo modela napovedovanja, da z analizo razmerja med ustreznimi podatki napovemo možnost domače tekme ali tekme v gosteh.

uvoz pand kot pd uvoz numpy kot np uvoz seaborn kot sns uvoz matplotlib.pyplot kot plt df = pd.read_csv (r'C: UsersMohammadWaseemDocumentsdata.csv ') print (df.head (5))

Vse podatke boste dobili v berljivi obliki za lažjo analizo. Nato lahko določite odvisne in neodvisne spremenljivke za svoj model.

Analiziranje podatkov

Nabor podatkov se analizira, da se določi razmerje med spremenljivkami. Z ustvarjanjem različnih grafikonov za preverjanje razmerja med spremenljivkami.

sns.countplot ('Domov', hue = 'WINorLOSS', data = df) plt.show ()

Zgoraj je razmerje med odstotkom zmag / porazov glede na tekmo doma / v gosteh. Similarnolahko narišemo graf razmerja med drugimi ustreznimi vnosi v podatke.

Prepiranje podatkov

Nabor podatkov je spremenjen glede na ciljno spremenljivko. Iz podatkovnega okvira bomo izločili tudi vse ničelne vrednosti in vrednosti nizov.

print (df.isnull (). sum ())

Preverili bomo, ali obstajajo vsi nepomembni podatki, kot so ničelne vrednosti in vrednosti, ki med gradnjo modela napovedovanja ne bodo potrebne. Če v naboru podatkov NBA, ki ga uporabljamo, ni ničelnih vrednosti, bomo nadaljevali z razdelitvijo podatkov.

Podatki o preskusih in vlak

Za delovanje modela so podatki razdeljeni na preskusne podatke in podatke o vlaku. Podatki so razdeljeni z train_test_split . Podatki so razdeljeni v razmerju 70:30.

Zdaj pa za napoved modela funkcija logistične regresije se izvede z uvozom modela logistične regresije v modul sklearn.

Model se nato s funkcijo prileganja prilega vlaku. Po tem se predvidevanje izvede s funkcijo predvidevanja.

iz sklearn.model_selection uvoz train_test_split iz sklearn.linear_model import LogisticRegression iz sklearn.metrics import logistics_report iz sklearn.metrics import confusion_matrix, дакладна_score x = df.drop ('Domov', os = 1) y = df ['Domov'] x_train, x_test, y_train, y_test = vlak_test_split (x, y, test_size = 0,33, random_state = 1) logmodel = LogisticRegression () logmodel.fit (x_train, y_train) napovedi = logmodel.predict (x_test) print (klasifikacijsko poročilo (y_test, napovedi)) print (matrica_zmede (y_test, napovedi)) print (rezultat_točnosti (y_test, napovedi))

Poročilo o razvrstitvi:

Poročilo o klasifikaciji prikazuje Natančnost , Odpoklic, F1 in podpora ocene za model.

kaj je keyerror v pythonu

Natančnost rezultat pomeni raven, do katere je natančna napoved modela. Natančnost domače tekme je 0,62 in v gosteh igra 0,58 .

Spomnimo se je znesek, do katerega lahko model napove izid. Odpoklic za domačo tekmo je 0,57 in za gostovanje je 0,64 . Ocene F1 in podpora so količina podatkov, preizkušenih za napovedi. V naboru podatkov NBA so testirani podatki za domačo igro 1662 in v gosteh igra 1586 .

Matrica zmede:

Matrica zmede je tabela, ki opisuje delovanje modela napovedovanja. Matrica zmede vsebuje dejanske vrednosti in predvidene vrednosti. te vrednosti lahko uporabimo za izračun ocene natančnosti modela.

Zgrešena matrična toplotna karta:

Načrtujmo toplotni zemljevid matrice zmede z uporabo Seaborn in vizualizirati napovedni model, ki smo ga zgradili. Za risanje toplotne karte je potrebna naslednja skladnja.

sns.heatmap (pd.DataFrame (confusion_matrix (y_test, napovedi))) plt.show ()

Če pogledamo toplotno karto, lahko ugotovimo naslednje:

  • Od vseh napovedi je klasifikator napovedal da za skupno 1730-krat, od tega 1012 dejanskih da.
  • od vseh napovedi je klasifikator predvideval ne za skupno 1518-krat, od tega 944 dejanskih št.

S to analizo matrice zmede lahko zaključimo oceno natančnosti našega modela napovedovanja.

Ocena natančnosti:

Ocena natančnosti je odstotek natančnosti napovedi, ki jih daje model. Za naš model je ocena natančnosti 0,60, kar je precej natančno. Toda bolj kot je ocena natančnosti učinkovit vaš napovedni model. Za boljši model napovedovanja si morate vedno prizadevati za višji rezultat natančnosti.

Z zgoraj opisanimi koraki smo predvideli možnost igre doma / v gosteh z uporabo nabora podatkov NBA. Po analizi poročila o razvrstitvi lahko predpostavimo možnost tekme doma / v gosteh.

V tem blogu smo razpravljali o logistični regresiji v konceptih pythona, kako se razlikuje od linearnega pristopa. Pokrili smo tudi predstavitev z uporabo nabora podatkov NBA. Za večji vpogled in prakso lahko uporabite nabor podatkov po svoji izbiri in sledite obravnavanim korakom za izvajanje logistične regresije v Pythonu.

Oglejte si tudi različne bloge Data-Science na platformi edureka, da obvladate podatkovnega znanstvenika v sebi.

Če se želite naučiti Pythona in si ustvariti kariero v znanosti o podatkih, si oglejte naš interaktivni splet v živo tukaj je na voljo 24 * 7 podpora, ki vas vodi skozi celotno obdobje učenja.
Imate vprašanje? Prosimo, omenite to v komentarjih in se vam bomo javili.