Teljes, lépésről lépésre útmutató a szívelégtelenség előrejelzésére vonatkozó adatkészlethez a Jupyter Notebookban
Bevezetés
Végre készen állunk a logisztikai regresszió végrehajtására az adatkészleten.
Áttekintés
Ebben a cikkben a következő témákkal foglalkozunk:
- Logisztikus regresszió
- Logit modell
- Maximális valószínűség becslés
- Modellfejlesztés
- Modell előrejelzés
- Modellparaméterek becslése (Skicit-learn vs. Statsmodels)
- Modell értékelése
Logisztikus regresszió
A regresszió statisztikai módszer. Az adattudományban és a gépi tanulásban többféle regressziót használnak:
- Lineáris regresszió,
- polinomiális regresszió,
- Ridge regresszió,
- Lasszó regresszió,
- Logisztikus regresszió.
A logisztikai regresszió modellezi a függő változó és egy független változó közötti kapcsolatot. A függő változó kategorikus attribútum. Ez az attribútum 0 és 1, igen vagy nem, vagy igaz vagy hamis formában jelenik meg. Kétféle változó létezik:
- Függő változó: előrejelzett vagy célváltozónak is nevezik. Ez az a változó, amelyet meg akarunk jósolni.
- Független változó: előrejelző változónak is nevezik. A független változó hatással van a függő változóra. A független változót használjuk a függő változó előrejelzésére.
Csak egy független változót fogunk megváltoztatni. Megfigyeljük a függő változó hatását. A többi független változót rögzítve fogjuk tartani.
A függő változónak két vagy több kategorikus eredménye lehet. Két eredményhez bináris logisztikus regressziót használunk. Kettőnél több eredmény esetén multinomiális logisztikus regressziót alkalmazunk.
A forgatókönyv osztályozási probléma. Egy osztályozási feladatban megpróbáljuk megjósolni, hogy egy adatpont melyik osztályba tartozik.
Logit modell
A logisztikai regresszió modellezi annak valószínűségét, hogy Y egy adott kategóriába tartozik. Példánkban az Y (halálesemény) a túlélők vagy az elhunytak közé tartozhat. Feltételes valószínűségként írhatjuk fel a következő egyenlettel:
Megmondja nekünk a túlélés valószínűségét, ha tudjuk, hogy cukorbetegek. A logisztikus regresszió a lineáris regresszió egyik formája. A logisztikus regresszió egyenlete a következőképpen néz ki:
Ha megrajzoljuk ennek az egyenletnek a görbéjét, akkor egy S alakú görbét kapunk. Ez a szigmoid függvény.
Amint látjuk, a logisztikai függvény a szélsőségekben közelít a nullához és az egyhez. Az x változó nulla és egy lesz, ha x pozitív vagy negatív végtelenben van. A logisztikai függvény soha nem ad vissza nullánál egy vagy nagyobb vagy kisebb valószínűséget.
Az adatok logisztikus regressziós modellezésére a szigmoid függvényt használjuk. A függvényt így írjuk:
A függvényt tovább módosíthatjuk:
Az egyenlet jobb oldala az esély. Az odds az esemény valószínűsége osztva annak valószínűségével, hogy az esemény nem következik be.
Ha az érték közelebb van a 0-hoz, a valószínűség kisebb. Ha az érték nagyobb, akkor nagyobb a valószínűsége.
A jellemzők és a célváltozó között nincs lineáris kapcsolat. Nemlineáris kapcsolat esetén az adatokat logaritmikus transzformációval kell átalakítanunk. Felvesszük a logaritmust az egyenlet mindkét oldalán. Ez megadja nekünk a bináris eredményváltozó sikerének vagy logit függvényének logikus esélyét:
Lineáris kapcsolat van a változó(k) és a természetes logó között
P az esemény bekövetkezésének valószínűsége. Az egyik valószínűsége egy esemény bekövetkezésének bizonyossága. A nulla valószínűsége annak bizonyossága, hogy az esemény nem következik be.
A logit függvény egy adott osztályhoz való tartozás valószínűségét adja vissza.
Maximális valószínűség becslés
Az értékeket a logisztikus függvényegyenletben tudjuk megbecsülni. Maximalizáljuk a likelihood függvényt, hogy az együtthatók legjobb értékeit kapjuk:
Adatkészletünk függő változója a Death Event változó. Ez a változó megmutatja, hogy a betegek túlélték-e vagy elhunytak. Ezt az adatkészletet fogjuk használni annak előrejelzésére, hogy egy beteg túlélte-e a szívelégtelenséget.
Modellfejlesztés
Először importáljuk a szükséges könyvtárat:
Ezt követően létrehozunk egy logisztikai regressziós objektumot. Inicializáljuk az algoritmust:
Ezután felszereljük a modellt a vonatszerelvényre:
Modell előrejelzés
Végül előrejelzést hajtunk végre a tesztkészleten:
A kimenet így néz ki:
[0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1
0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0
0]
Modellparaméterek becslése (Skicit-Learn vs. Statsmodels)
Az együtthatókat a Skicit-Learn vs. Statsmodels segítségével becsüljük meg. Más eredményt várunk. Ennek oka:
- Skicit-learning modellek a gépi tanulás szemszögéből.
- A könyvtár statisztikai modelljei a logisztikai regressziót modellezik a statisztika szemszögéből.
Ezt a különbséget egy későbbi bejegyzésben fogjuk megvizsgálni.
Skicit-Learn
Kivonjuk a metszéspont értékét.
[0.00022105]
Kivonjuk az együttható értékét.
[[ 5.38458117e-02 5.36773673e-04 2.31503895e-04 9.27113916e-05
-7.74073086e-02 -1.58834172e-04 -2.92700745e-06 7.34575441e-03
1.10442224e-02 3.91177459e-05 -2.10509760e-04 -1.89739330e-02]]
Az együtthatókat egy listába helyezzük.
A haláleset logaritmusa 0,053846-tal nő az életkor minden egyfokkal történő növekedésével.
Statsmodels
Először is meghatározzuk a jellemző oszlopokat. Az adatkészletet szolgáltatásokra és célváltozókra bontjuk.
Ezután importáljuk a szükséges könyvtárat. A könyvtári statsmodels eszközöket biztosít különböző statisztikai modellekhez és tesztekhez. A Statsmodels Logit () függvényt biztosít a logisztikus regresszió végrehajtásához. A Logit () függvény elfogadja az y-t és az x-et paraméterként. Visszaadja a Logit objektumot. A modell ezután illeszkedik az adatokhoz. Az alábbi összefoglaló táblázat a regressziós eredmények leíró összefoglalását tartalmazza.
Végül a statsmodels könyvtár megmutatja az együtthatókat és a p-értékeket:
A koef érték a szívelégtelenség túlélési esélyének átlagos változását mutatja meg. A P›|z| az értékek az egyes együtthatók p-értékeit jelentik. A pszeudo-R-négyzet a nullmodell log-likelihoodjának és a teljes modell log-valószínűségének aránya. Az érték 0 és 1 között változhat. A magasabb értékek jobb modellillesztést mutatnak. Például,
· Az életkor p-értéke 0,001. Mivel ez az érték kisebb, mint 0,05, ez azt jelenti, hogy jelentős kapcsolat áll fenn.
· Az pszeudo-R-négyzet értéke 0,4063. Ez nem túl magas. Minél magasabb az érték, annál jobban megjósolja a modell az eredményt.
Modell értékelése
Először importáljuk a szükséges könyvtárat:
Pontosság
Kiszámoljuk a pontosságot:
81%-os minősítési arányt kaptunk. Ez jó pontosság.
A pontossági pontszám megmutatja, hogy a teszt során hány előrejelzés volt helyes. A pontosság megmutatja, hogy a modellnek milyen gyakran van igaza, amikor előrejelzést ad. Ha a hamis pozitív eredmények aránya alacsony, a pontosság nagyobb. A Recall megmutatja, hogy a modell képes-e megtalálni az összes releváns esetet egy adatkészleten belül.
Zavart mátrix
A zavaros mátrix értékeli az osztályozási modell teljesítményét.
48 és 13 valós előrejelzések. A 10 és 4 helytelen előrejelzések.
ROC görbe
A vevő működési jellemzői (ROC) az osztályozási modell teljesítményét mutatja. Ez a görbe két paramétert ábrázol:
- Valódi pozitív árfolyam
- Hamis pozitív arány
Megmutatja az érzékenység és a specifitás közötti kompromisszumot.
A görbe alatti terület (AUC) pontszáma az esetre 0,89. Az 1-es AUC pontszám tökéletes osztályozót jelent.
A kód a Githubon található. /
Következtetés
Teljes útmutatót adtunk a logisztikai regresszióhoz. Elmagyaráztuk a Logit modellt. Megbecsültük a paramétereket. Kidolgoztuk és kiértékeltük a módot. Egyik következő cikkünkben javítani fogjuk a logisztikai regressziót. A jövőben megvizsgáljuk a Skicit-Learn és a Statsmodels közötti különbséget. Ha tetszik ez a cikk, tapsolj. Ha szeretne olvasni tőlem hasonló cikkeket, kérjük, kövessen, hogy e-mailben értesítsek, amikor új cikket teszek közzé.
Referencia:
Banoth, R., Godishala, A. K. and Chilukula, M. R. (2021) Introduction to Machine Learning. 1. kiadás Tudós sajtó. Elérhető: https://www.perlego.com/book/3217400/introduction-to-machine-learning-supervised-and-unsupervised-learning-pdf (Hozzáférés: 2022. október 15.).
Chopra, R., England, A. és Alaudeen, M. N. (2019) Data Science with Python. 1. kiadás Packt Publishing. Elérhető: https://www.perlego.com/book/1031662/data-science-with-python-combine-python-with-machine-learning-principles-to-discover-hidden-patterns-in-raw- data-pdf (Hozzáférés: 2023. február 14.).
Johnston, B. és Mathur, I. (2019): Applied Supervised Learning with Python. 1. kiadás Packt Publishing. Elérhető: https://www.perlego.com/book/962337/applied-supervised-learning-with-python-use-scikitlearn-to-build-predictive-models-from-realworld-datasets-and-prepare- magad-for-the-future-of-machine-learning-pdf (Hozzáférés: 2023. február 14.).
Singh, H. (2021): Statistics for Machine Learning. [kiadás nem elérhető]. BPB kiadványok. Elérhető: https://www.perlego.com/book/2089870/statistics-for-machine-learning-implement-statistic-methods-used-in-machine-learning-using-python-english-edition-pdf (Hozzáférés: 2023. február 14.).