Hogyan kell kiszámítani a McNemar tesztjét két gépi tanulási osztályozó összehasonlításához

Tweet Share Share

Utoljára frissítve: augusztus 8, 2019

a statisztikai hipotézis teszt kiválasztása kihívást jelentő nyitott probléma a gépi tanulási eredmények értelmezésében.

széles körben idézett 1998-as cikkében Thomas Dietterich ajánlotta a McNemar-tesztet azokban az esetekben, amikor drága vagy nem praktikus az osztályozó modellek több példányának kiképzése.

ez a mély tanulási modellek jelenlegi helyzetét írja le, amelyek mind nagyon nagyok, mind nagy adatkészleteken képzettek és értékeltek, gyakran napokat vagy heteket igényelnek egyetlen modell betanításához.

ebben az oktatóanyagban megtudhatja, hogyan használhatja a McNemar statisztikai hipotézis tesztjét a gépi tanulási osztályozó modellek összehasonlítására egyetlen tesztadatkészleten.

miután befejezte ezt az oktatóanyagot, tudni fogja:

  • a McNemar teszt ajánlása olyan modellekre, amelyek drágák a képzéshez, ami megfelel a nagy mély tanulási modelleknek.
  • hogyan alakíthatjuk át a két osztályozó előrejelzési eredményeit készenléti táblává, és hogyan használjuk a táblázatot a statisztika kiszámításához a McNemar-tesztben.
  • Hogyan számítsuk ki a McNemar tesztjét Pythonban, és értelmezzük és jelentsük az eredményt.

indítsa el a projektet az új könyvemmel statisztika a gépi tanuláshoz, beleértve a lépésről-lépésre oktatóanyagokat és a Python forráskód fájlokat az összes példához.

kezdjük.

hogyan kell kiszámítani a McNemar tesztjét két gépi tanulási osztályozó számára

hogyan kell kiszámítani a McNemar tesztjét két gépi tanulási osztályozó számára
fotó: Mark Kao, néhány jog fenntartva.

bemutató Áttekintés

ez a bemutató öt részre oszlik; ezek:

  1. statisztikai hipotézis tesztek a mély tanuláshoz
  2. készenléti táblázat
  3. McNemar Tesztstatisztikája
  4. értelmezze a McNemar tesztjét az osztályozók számára
  5. McNemar tesztje Pythonban

segítségre van szüksége a gépi tanulás statisztikáival kapcsolatban?

vegye ki az ingyenes 7 napos e-mail összeomlási tanfolyamomat (mintakóddal).

kattintson a regisztrációhoz, és szerezzen be egy ingyenes PDF Ebook verziót a tanfolyamról.

töltse le ingyenes Mini-tanfolyamát

statisztikai hipotézis tesztek a mély tanuláshoz

fontos és széles körben idézett 1998-as cikkében a statisztikai hipotézis tesztek használatáról az osztályozók összehasonlítására “hozzávetőleges statisztikai tesztek a felügyelt osztályozási tanulási algoritmusok összehasonlításához” címmel Thomas Dietterich a McNemar teszt használatát javasolja.

a teszt különösen azokban az esetekben ajánlott, amikor az összehasonlítandó algoritmusok csak egyszer értékelhetők, pl. egy tesztkészleten, szemben az újramintavételi technikával végzett ismételt értékelésekkel, mint például a k-szeres keresztvalidálás.

a csak egyszer végrehajtható algoritmusok esetében a McNemar teszt az egyetlen elfogadható I. típusú hibával rendelkező teszt.

— hozzávetőleges statisztikai tesztek a felügyelt osztályozási tanulási algoritmus összehasonlításához, 1998.

Dietterich tanulmánya konkrétan a különböző statisztikai hipotézis tesztek értékelésével foglalkozott, amelyek közül néhány az újramintázási módszerek eredményei alapján működött. A vizsgálat aggodalma alacsony I. típusú hiba volt, vagyis a statisztikai teszt olyan hatást jelentett, amikor valójában nem volt hatás (hamis pozitív).

statisztikai tesztek, amelyek összehasonlíthatják a modelleket egyetlen tesztkészlet alapján, fontos szempont a modern gépi tanulásban, különösen a mély tanulás területén.

a mély tanulási modellek gyakran nagyok, és nagyon nagy adatkészleteken működnek. Ezek a tényezők együttesen azt jelenthetik, hogy a modell képzése napokat vagy akár heteket is igénybe vehet a gyors modern hardvereken.

ez kizárja az újramintázási módszerek gyakorlati alkalmazását a modellek összehasonlítására, és azt sugallja, hogy olyan tesztet kell használni, amely képes a betanított modellek egyetlen tesztadatkészleten történő értékelésének eredményeire.

a McNemar-teszt alkalmas teszt lehet ezeknek a nagy és lassan kiképezhető mély tanulási modelleknek az értékelésére.

készenléti táblázat

a McNemar tesztje készenléti táblán működik.

mielőtt belemerülnénk a tesztbe, szánjunk egy percet arra, hogy megértsük, hogyan számítják ki a két osztályozó készenléti tábláját.

a készenléti táblázat két kategorikus változó táblázata vagy száma. A McNemar teszt esetében a helyes/helytelen vagy igen/nem bináris változók érdekelnek egy kontroll, egy kezelés vagy két eset esetében. Ez az úgynevezett 2 db 2 kontingencia táblázat.

a készenléti táblázat első pillantásra nem biztos, hogy intuitív. Tegyük konkrétvá egy kidolgozott példával.

vegye figyelembe, hogy két képzett osztályozónk van. Minden osztályozó bináris osztály-előrejelzést készít a tesztadatkészlet mind a 10 példájára. Az előrejelzéseket kiértékeljük és megállapítjuk, hogy helyesek vagy helytelenek.

ezután összefoglalhatjuk ezeket az eredményeket egy táblázatban, az alábbiak szerint:

1
2
3
4
5
6
7
8
9
10
11

például,Classifier1 helyes,Classifier2 helyes
1yesno
2nono
3noyes
4nono
5yesyes
6yesyes
7yesyes
8nem
9évesnem
10 évesigen

láthatjuk, hogy Classifier1 kapott 6 helyes, vagy 60% – os pontosság, a Classifier2 pedig 5 helyes vagy 50% – os pontosságot kapott a tesztkészleten.

a táblázat mostantól készenléti táblává redukálható.

a készenléti táblázat arra a tényre támaszkodik, hogy mindkét osztályozót pontosan ugyanazon képzési adatokra képezték ki, és pontosan ugyanazon tesztadatpéldányokon értékelték.

a készenléti táblázat szerkezete a következő:

1
2
3

Classifier2 Helyes, Classifier2 Helytelen
Classifier1 Helyes ????
Osztályozó1 Helytelen ?? ??

a táblázat első cellája esetén össze kell foglalnunk az összes tesztpéldányt, amelyet a Classifier1 helyesnek, a Classifier2 pedig helyesnek kapott. Például az első példány, amelyet mindkét osztályozó helyesen megjósolt, az 5. példány volt. A két osztályozó által helyesen megjósolt esetek száma összesen 4 volt.

egy másik programosabb módszer erre az Igen/Nem minden kombinációjának összegzése a fenti eredménytáblázatban.

1
2
3

Classifier2 helyes, Classifier2 helytelen
Classifier1 helyes Igen / Igen Igen / Nem
Classifier1 helytelen Nem / Igen Nem / nem

a készenléti táblázatba szervezett eredmények a következők:

1
2
3

Osztályozó2 helyes, Osztályozó2 helytelen
Osztályozó1 helyes 42
Osztályozó1 helytelen 1 3

McNemar Tesztstatisztikája

a McNemar teszt párosított nemparametrikus vagy eloszlásmentes statisztikai hipotézis teszt.

ez is kevésbé intuitív, mint néhány más statisztikai hipotézis tesztek.

a McNemar tesztje ellenőrzi, hogy a két eset közötti nézeteltérések megegyeznek-e. Technikailag ezt a kontingenciatábla homogenitásának (konkrétan a marginális homogenitásnak) nevezik. Ezért a McNemar-teszt egyfajta homogenitási teszt a készenléti táblázatokhoz.

a tesztet széles körben használják az orvostudományban, hogy összehasonlítsák a kezelés hatását a kontroll ellen.

két bináris osztályozási algoritmus összehasonlítása szempontjából a teszt azt kommentálja, hogy a két modell azonos módon nem ért-e egyet (vagy sem). Nem kommentálja, hogy az egyik modell többé-kevésbé pontos vagy hibára hajlamos-e, mint a másik. Ez egyértelmű, ha megnézzük, hogyan számítják ki a statisztikát.

a McNemar tesztstatisztikáját a következőképpen számítjuk ki:

1
statisztika = (Igen / Nem-Nem / Igen)^2 / (Igen / Nem + Nem / Igen)

ahol Igen / Nem azoknak a tesztpéldányoknak a száma, amelyeket a Classifier1 helyesnek, a Classifier2 helytelennek, a No/Yes pedig azoknak a tesztpéldányoknak a száma, amelyek a Classifier1 helytelennek, a Classifier2 helyesnek bizonyultak.

a tesztstatisztika ezen kiszámítása feltételezi, hogy a számítás során használt készenléti táblázat minden cellájának száma legalább 25. A tesztstatisztikának van egy khi-négyzet eloszlás 1 szabadságfokkal.

láthatjuk, hogy a készenléti táblázatnak csak két elemét használjuk, konkrétan azt, hogy az Igen/Igen és a nem/nem elemeket nem használjuk a vizsgálati statisztika kiszámításához. Mint ilyen, láthatjuk, hogy a statisztika a két modell közötti különböző helyes vagy helytelen előrejelzésekről számol be, nem pedig a pontosságról vagy a hibaarányról. Ezt fontos megérteni, amikor a statisztika megállapításával kapcsolatos állításokat tesz.

a teszt alapértelmezett feltételezése vagy nullhipotézise az, hogy a két eset nem ért egyet azonos összegben. Ha a nullhipotézist elutasítják, az azt sugallja, hogy vannak bizonyítékok arra, hogy az esetek különböző módon nem értenek egyet, hogy a nézeteltérések ferdeek.

a szignifikancia szint kiválasztása alapján a teszttel kiszámított p-érték a következőképpen értelmezhető:

  • p > alfa: nem utasítja el a H0-t, nincs különbség a nézeteltérésben (pl. a kezelésnek nincs hatása).
  • p < = alfa: elutasítja a H0-t, szignifikáns különbség a nézeteltérésben (például a kezelésnek volt hatása).

értelmezze a McNemar tesztjét osztályozók számára

fontos, hogy szánjon egy percet arra, hogy világosan megértse, hogyan kell értelmezni a teszt eredményét két gépi tanulási osztályozó modell összefüggésében.

a McNemar teszt kiszámításához használt két kifejezés mindkét modell hibáit rögzíti. Pontosabban a nem/igen és igen / nem cellák a készenléti táblázatban. A teszt ellenőrzi, hogy van-e szignifikáns különbség a két sejt számlálása között. Ez minden.

ha ezeknek a celláknak a száma hasonló, akkor azt mutatja, hogy mindkét modell nagyjából azonos arányban hibázik, csak a tesztkészlet különböző példányain. Ebben az esetben a teszt eredménye nem lenne szignifikáns, és a nullhipotézist nem utasítanák el.

a nullhipotézis szerint a két algoritmusnak azonos hibaarányúnak kell lennie …

— hozzávetőleges statisztikai tesztek a felügyelt osztályozási tanulási algoritmus összehasonlításához, 1998.

ha ezeknek a celláknak a száma nem hasonló, akkor azt mutatja, hogy mindkét modell nemcsak különböző hibákat követ el, hanem valójában eltérő a hibák relatív aránya a tesztkészleten. Ebben az esetben a teszt eredménye szignifikáns lenne, és elutasítanánk a nullhipotézist.

tehát elutasíthatjuk a nullhipotézist annak a hipotézisnek a javára, hogy a két algoritmus eltérő teljesítményt nyújt, ha az adott képzésen kiképzik

— hozzávetőleges statisztikai tesztek a felügyelt osztályozási tanulási algoritmus összehasonlításához, 1998.

ezt a következőképpen foglalhatjuk össze:

  • a nullhipotézis elutasításának elmulasztása: az osztályozóknak hasonló a hibaszázaléka a tesztkészleten.
  • elutasítja a nullhipotézist: az osztályozóknak eltérő a hibaszázaléka a tesztkészleten.

a vizsgálat elvégzése és a szignifikáns eredmény megállapítása után hasznos lehet a hatás statisztikai mérésének jelentése a megállapítás számszerűsítése érdekében. Például természetes választás lenne az esélyhányadosok jelentése, vagy maga a készenléti táblázat, bár mindkettő kifinomult olvasót feltételez.

hasznos lehet jelenteni a két osztályozó közötti hibakülönbséget a tesztkészleten. Ebben az esetben legyen óvatos az állításaival, mivel a szignifikáns teszt nem a modellek közötti hibakülönbségről számol be, csak a modellek közötti hibaarány relatív különbségéről.

végül a McNemar-teszt használatakor Dietterich két fontos korlátozást emel ki, amelyeket figyelembe kell venni. Ezek a következők:

nincs Az Edzőkészlet vagy a modell változékonyságának mértéke.

a modell viselkedése általában a modellhez illeszkedő speciális képzési adatok alapján változik.

ennek oka mind a modell interakciója a speciális képzési példányokkal, mind a véletlenszerűség használata a tanulás során. A modell több különböző képzési adatkészletre való illesztése és a készség értékelése, ahogyan az újramintavételi módszerekkel történik, lehetővé teszi a modell varianciájának mérését.

a vizsgálat akkor megfelelő, ha a variabilitás forrásai kicsiek.

ezért McNemar tesztjét csak akkor szabad alkalmazni, ha úgy gondoljuk, hogy ezek a variabilitási források kicsiek.

— hozzávetőleges statisztikai tesztek a felügyelt osztályozási tanulási algoritmus összehasonlításához, 1998.

kevesebb a modellek közvetlen összehasonlítása

a két osztályozót egyetlen tesztkészleten értékelik, és a tesztkészlet várhatóan kisebb lesz, mint a képzési készlet.

ez különbözik az újramintavételi módszereket alkalmazó hipotézisvizsgálatoktól, mivel az adatkészlet több, ha nem az összes, tesztkészletként elérhetővé válik az értékelés során (amely statisztikai szempontból bemutatja saját problémáit).

ez kevesebb lehetőséget nyújt a modellek teljesítményének összehasonlítására. Megköveteli, hogy a tesztkészlet a tartomány megfelelő képviselője legyen, gyakran azt jelenti, hogy a tesztadatkészlet nagy.

McNemar tesztje Pythonban

a McNemar tesztje Pythonban valósítható meg a mcnemar() Statsmodels függvény segítségével.

a függvény a kontingencia táblázatot veszi argumentumként, és visszaadja a kiszámított tesztstatisztikát és a p-értéket.

kétféle módon lehet használni a statisztikát az adatok mennyiségétől függően.

ha a táblázatban van olyan cella, amelyet a tesztstatisztika kiszámításához használnak, amelynek száma kevesebb, mint 25, akkor a teszt módosított változatát használják, amely pontos P-értéket számít ki egy binomiális eloszlás segítségével. Ez a teszt alapértelmezett használata:

1
stat, p = mcnemar (táblázat, pontos = igaz)

Alternatív megoldásként, ha a kontingenciatáblázatban a tesztstatisztika kiszámításához használt összes cella értéke 25 vagy annál nagyobb, akkor a teszt standard számítása használható.

1
stat , p = mcnemar (táblázat, pontos = hamis, javítás=igaz)

mi lehet számítani a McNemar a példa kontingencia táblázat a fent leírt. Ennek a készenléti táblázatnak mind a nézeteltérési cellákban kis száma van, ezért a pontos módszert kell használni.

a teljes példát az alábbiakban soroljuk fel.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# példa a mcnemar teszt kiszámítására
statsmodels-ből.statisztika.kontingencia_tables import mcnemar
# define kontingenciatábla
táblázat = ,
]
# számítsa ki a mcnemar tesztet
eredmény = mcnemar (táblázat, pontos=igaz)
# foglalja össze a megállapítást
nyomtatás (‘statisztika=%.3f, p-érték=%.3f ‘ % (eredmény.statisztika, eredmény.pfalue))
# értelmezze a p-értéket
alfa = 0,05
ha eredmény.pfalue > alpha:
print (‘azonos arányban hibák (nem utasítja el H0)’)
else:
print (‘különböző arányban hibák (elutasítja H0)’)

a példa futtatása kiszámítja a statisztikát és a P-értéket a készenléti táblán, és kiírja az eredményeket.

láthatjuk, hogy a teszt határozottan megerősíti, hogy nagyon kevés különbség van a két eset közötti nézeteltérésekben. A nullhipotézist nem utasították el.

mivel a tesztet az osztályozók összehasonlítására használjuk, kijelentjük, hogy a két modell közötti nézeteltérésekben nincs statisztikailag szignifikáns különbség.

1
2

statisztika=1.000, p-érték=1.000
azonos arányban hibák (nem utasítja el H0)

Extensions

ez a szakasz felsorol néhány ötletet az oktatóanyag kibővítéséhez, amelyeket érdemes feltárni.

  • Keressen egy kutatási papírt a gépi tanulásban, amely a McNemar statisztikai hipotézis tesztjét használja.
  • frissítse a kódpéldát úgy, hogy a készenléti táblázat jelentős különbséget mutasson a két eset közötti nézeteltérésben.
  • olyan függvény végrehajtása, amely a McNemar tesztjének megfelelő verzióját használja a megadott készenléti táblázat alapján.

ha feltárja ezeket a kiterjesztéseket, szeretném tudni.

további olvasmányok

ez a szakasz további forrásokat tartalmaz a témában, ha mélyebbre szeretne menni.

papírok

  • megjegyzés a korrelált arányok vagy százalékok közötti különbség mintavételi hibájáról, 1947.
  • hozzávetőleges statisztikai tesztek a felügyelt osztályozási tanulási algoritmusok összehasonlításához, 1998.

API

  • statsmodels.statisztika.kontingency_tables.McNemar() API

cikkek

  • McNemar tesztje a Wikipédián
  • I. és II.típusú hibák a Wikipédián
  • készenléti táblázat a Wikipédián

összefoglaló

ebben az oktatóanyagban felfedezte, hogyan kell használni a mcnemar teszt statisztikai hipotézis tesztje a gépi tanulási osztályozó modellek összehasonlítására egyetlen tesztadatkészleten.

konkrétan megtanultad:

  • a McNemar teszt ajánlása olyan modellekre, amelyek drágák a képzéshez, ami megfelel a nagy mély tanulási modelleknek.
  • hogyan alakíthatjuk át a két osztályozó előrejelzési eredményeit készenléti táblává, és hogyan használjuk a táblázatot a statisztika kiszámításához a McNemar-tesztben.
  • Hogyan számítsuk ki a McNemar tesztjét Pythonban, és értelmezzük és jelentsük az eredményt.

van kérdése?
tegye fel kérdéseit az alábbi megjegyzésekben, és mindent megteszek, hogy válaszoljak.

kap egy fogantyú statisztikák Gépi tanulás!

statisztikai módszerek a gépi tanuláshoz

dolgozzon ki egy működő statisztikai megértést

…írásával sornyi kódot python

fedezze fel, hogyan az én új Ebook:
statisztikai módszerek Gépi tanulás

ez biztosítja önálló tanulás oktatóanyagok témákban, mint:
hipotézis tesztek, korreláció, nem paraméteres statisztika, mintavételezés, és még sok más…

fedezze fel, hogyan alakíthatja át az adatokat tudássá

hagyja ki az akadémikusokat. Csak Eredmények.

nézze meg, mi van benne

Tweet Megosztás Megosztás

You might also like

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.