Minőségi mutató a gépi tanulásban. Metrikák a gépi tanulási problémákban

Az egyes listákon belüli elemeken. A részleges sorrendet általában úgy határozzák meg, hogy minden elemhez pontszámot adnak meg (például "releváns" vagy "nem releváns"; több mint két osztályzat lehetséges). A rangsorolási modell célja, hogy a legjobb módon (bizonyos értelemben) közelítse és általánosítsa a rangsorolási módszert az új adatok képzési készletében.

A tanulás rangsorolása még mindig meglehetősen fiatal, gyorsan fejlődő kutatási terület, amely a kétezres években jelent meg, amikor felkeltette az érdeklődést az információszerzés területén a gépi tanulási módszerek alkalmazása a rangsorolási problémákra.

Kollégiumi YouTube

  • 1 / 5

    A rangsorolási modell betanítása és működése során minden dokumentum-lekérdezés pár a rangsorolási jellemzők (más néven rangsorolási tényezők vagy jelek) numerikus vektorává alakul, amelyek a dokumentum tulajdonságait, lekérdezését és azok kapcsolatát jellemzik. Az ilyen jeleket három csoportra lehet osztani:

    Az alábbiakban néhány példa a szakterületen jól ismert LETOR adatkészletben használt rangsorolási funkciókra:

    • A TF, TF-IDF, BM25 mértékek értékei és a dokumentum különböző területeinek (cím, URL, törzsszöveg, linkszöveg) kérésének megfelelő nyelvi modell;
    • A dokumentumzónák hossza és IDF-összege;
    • A link rangsorolási algoritmusok különböző változatai, például a PageRank és a HITS.

    Minőségi mutatók rangsorolása

    Számos metrika létezik, amelyek alapján a minta rangsorolási algoritmusainak teljesítményét értékelik, és összehasonlítják az értékelőkkel. Gyakran előfordul, hogy a rangsorolási modell paramétereit úgy módosítják, hogy maximalizálják az egyik ilyen mutatót.

    Példák a mutatókra:

    Algoritmus besorolása

    A „Learning to Rank for Information Retrieval” című cikkében és a tematikus konferenciákon elhangzott beszédeiben Tai-Yang Liu, a Microsoft Research Asia munkatársa elemezte a tanítási rangsorolás problémájának megoldására létező módszereket, és javasolta azok besorolását három megközelítésbe, az alkalmazott bemeneti ábrázolástól függően. . adat- és büntetési funkciók:

    Pontos megközelítés

    Jegyzetek (szerkesztés)

    1. Tie-Yan Liu (2009), Megtanuljuk rangsorolni az információkeresést, Foundations and Trends in Information Retrieval: Vol. 3: 3., p. 225-331, ISBN 978-1-60198-244-5, DOI 10.1561 / 1500000016... Diák T. Lew WWW 2009 -es beszédéből elérhető.

    Egy távközlési szolgáltató ügyfeleinek kiáramlásáról.


    Töltsük be a szükséges könyvtárakat, és nézzük meg az adatokat

    import pandák pd importálás matplotlib.pyplot as plt from matplotlib.pylab import rc, plot import seaborn as sns from sklearn.preprocessing import Labelmblencoder, OneHotEncoder from sklearn.model_selection import cross_val_score from sklearn.linear_modelressing skinarning GrainF innen: sklearn.metrics import pontosság_recall_curve, osztályozási jelentés sklearn.model_selection import train_test_split df = pd.read_csv ("../../ data/ telecom_churn.csv")


    df.head (5)

    Adatok előfeldolgozása

    # Készítsük el a bináris oszlopok feltérképezését #, és kódoljuk az állapotot álkódolással (az egyszerűség kedvéért jobb, ha ezt nem tesszük fa modelleknél) d = ("Igen": 1, "Nem": 0) df ["Nemzetközi terv "] = df [" Nemzetközi terv "]. Térkép (d) df [" Hangposta terv "] = df [" Hangposta terv "]. Térkép (d) df [" Churn "] = df [" Churn "] . Astype ("int64") le = LabelEncoder () df ["State"] = le.fit_transform (df ["State"]) ohe = OneHotEncoder (sparse = False) encoded_state = ohe.fit_transform (df ["State"] . values.reshape (- 1, 1)) tmp = pd.DataFrame (kódolt_állapot, oszlopok = ["állapot" + str (i) az i tartományban (kódolt_állapot.alak)]) df = pd.concat (, tengely = 1)

    Pontosság, pontosság és visszahívás

    Mielőtt magukra a mutatókra térnénk, be kell vezetni egy fontos fogalmat, amely leírja ezeket a mutatókat az osztályozási hibák szempontjából - zavart mátrix(hiba mátrix).
    Tegyük fel, hogy van két osztályunk és egy algoritmusunk, amely megjósolja az egyes objektumok valamelyik osztályhoz való tartozását, akkor az osztályozási hiba mátrix a következőképpen fog kinézni:


    Igaz pozitív (TP) Hamis pozitív (FP)
    Hamis negatív (FN) Valódi negatív (TN)

    Íme az algoritmus válasza az objektumon, és az adott osztály valódi osztálycímkéje.
    Így kétféle osztályozási hiba létezik: hamis negatív (FN) és hamis pozitív (FP).


    Algoritmusoktatás és a hibamátrix felépítése

    X = df.drop ("Churn", tengely = 1) y = df ["Churn"] # Oszd fel a mintát vonatra és tesztre, minden mérőszám kiértékelésre kerül az X_train, X_test, y_train, y_test = train_test_split ( X, y, stratify = y, test_size = 0,33, random_state = 42) # A natív logisztikai regresszió vonatkoztatása dokumentáció def plot_confusion_matrix (cm, osztályok, normalizálás = Hamis, cím = "(! LANG: Zavar mátrix", cmap=plt.cm.Blues): """ This function prints and plots the confusion matrix. Normalization can be applied by setting `normalize=True`. """ plt.imshow(cm, interpolation="nearest", cmap=cmap) plt.title(title) plt.colorbar() tick_marks = np.arange(len(classes)) plt.xticks(tick_marks, classes, rotation=45) plt.yticks(tick_marks, classes) if normalize: cm = cm.astype("float") / cm.sum(axis=1)[:, np.newaxis] print("Normalized confusion matrix") else: print("Confusion matrix, without normalization") print(cm) thresh = cm.max() / 2. for i, j in itertools.product(range(cm.shape), range(cm.shape)): plt.text(j, i, cm, horizontalalignment="center", color="white" if cm > thresh else "black") plt.tight_layout() plt.ylabel("True label") plt.xlabel("Predicted label") font = {"size" : 15} plt.rc("font", **font) cnf_matrix = confusion_matrix(y_test, lr.predict(X_test)) plt.figure(figsize=(10, 8)) plot_confusion_matrix(cnf_matrix, classes=["Non-churned", "Churned"], title="Zavart mátrix") plt.savefig("conf_matrix.png") plt.show()!}


    Pontosság

    Az intuitív, nyilvánvaló és szinte ki nem használt mutató a pontosság - az algoritmus helyes válaszainak százalékos aránya:



    Ez a metrika haszontalan az egyenlőtlen osztályokkal kapcsolatos problémákban, és könnyen példával is bemutatható.


    Tegyük fel, hogy értékelni akarjuk a spam levelek szűrőjének teljesítményét. 100 nem spam e-mailünk van, amelyek közül 90 osztályozónk helyesen azonosította (igaz negatív = 90, hamis pozitív = 10), és 10 spam e-mail, amelyek közül 5 az osztályozó is helyesen azonosított (igaz pozitív = 5, hamis negatív = öt) ).
    Akkor pontosság:



    Ha azonban az összes e-mailt nem spamként jósoljuk, akkor nagyobb pontosságot kapunk:



    Ugyanakkor modellünknek egyáltalán nincs előrejelző ereje, mivel kezdetben a spam üzeneteket akartuk azonosítani. Ennek leküzdésében segít majd az átállás a közös mutatóról minden osztályra az osztályok minőségének külön mutatóira.

    Pontosság, visszahívás és F-mérés

    Az algoritmus teljesítményének értékeléséhez az egyes osztályokon külön -külön bemutatjuk a pontossági és visszahívási mutatókat.




    A pontosság úgy értelmezhető, mint az osztályozó által pozitívnak és egyben valóban pozitívnak nevezett objektumok aránya, és a felidézés megmutatja, hogy a pozitív osztály összes objektumából hány százalék pozitív objektumot talált az algoritmus.



    A pontosság bevezetése nem teszi lehetővé, hogy minden objektumot egy osztályba írjunk, mivel ebben az esetben a hamis pozitív szint növekedését kapjuk. A visszahívás azt mutatja, hogy az algoritmus általában képes észlelni egy adott osztályt, a pontosság pedig azt, hogy meg tudja különböztetni ezt az osztályt a többi osztálytól.


    Amint azt korábban megjegyeztük, kétféle osztályozási hiba létezik: hamis pozitív és hamis negatív. A statisztikákban az első típusú hibát I. típusú hibának, a másodikat II. Az elõfizetõk számának meghatározásával kapcsolatos problémánkban az elsõ hiba az lesz, ha lojális elõfizetõt fogadunk el a kimenõre, mivel nulla hipotézisünk szerint egyik elõfizetõ sem távozik, és ezt a hipotézist elutasítjuk. Ennek megfelelően a második típusú hiba a kimenő előfizető "kihagyása" és a nullhipotézis hibás elfogadása lesz.


    A pontosság és a visszahívás nem függ a pontosságtól, az osztályok arányától, ezért alkalmazhatók a kiegyensúlyozatlan minták körülményei között.
    A gyakorlatban gyakran az a feladat, hogy megtaláljuk az optimális (a vevő számára) egyensúlyt e két mutató között. Klasszikus példa az ügyfél -torzítás meghatározásának problémája.
    Nyilván nem találunk mindenböl kimenő ügyfelek és csakőket. De miután azonosítottuk az ügyfelek megtartásának stratégiáját és erőforrásait, kiválaszthatjuk a szükséges pontossági és visszahívási küszöbértékeket. Például összpontosíthat arra, hogy csak magas hozamú ügyfeleket tartson fenn, vagy azokat, akik nagyobb valószínűséggel távoznak, mert korlátozott telefonközpont-erőforrásaink vannak.


    Általában egy algoritmus hiperparamétereinek optimalizálásakor (például rácson keresztüli iteráció esetén) GridSearchCV), egy metrikát használnak, amelynek javulását a tesztmintán várjuk.
    Számos különböző módszer létezik a pontosság és a visszahívás egyesítésére a minőségi mérőszámban. F -mérték (általában) - harmonikus átlag pontosság és visszahívás:



    Ebben az esetben meghatározza a metrika pontosságának súlyát, és ha ez a harmonikus átlag (2 -es tényezővel, úgy, hogy pontosság esetén = 1 és visszahívás = 1, hogy legyen)
    Az F-mérték akkor éri el a maximumát, ha a teljesség és a pontosság egyenlő eggyel, és közel van a nullához, ha az egyik argumentum nulla közeli.
    A Sklearn egy praktikus _metrics.classification funkcióval rendelkezik jelentés, amely visszaadja a visszahívást, a pontosságot és az F-mértéket az egyes osztályokra, valamint az egyes osztályok példányainak számát.


    jelentés = osztályozási jelentés (y_test, lr.predict (X_test), target_names = ["Non-churned", "Churned"]) print (report)
    osztály pontosság visszahívás f1-pontszám támogatás
    Keverésmentes 0.88 0.97 0.93 941
    Kavarva 0.60 0.25 0.35 159
    átlag / összesen 0.84 0.87 0.84 1100

    Itt meg kell jegyezni, hogy a kiegyensúlyozatlan osztályokkal kapcsolatos problémák esetén, amelyek a gyakorlatban érvényesülnek, gyakran szükség van az adatkészlet mesterséges módosítási technikáinak igénybevételére az osztályok arányának kiegyenlítése érdekében. Sok közülük van, és nem fogunk hozzájuk nyúlni, megnézhet néhány módszert, és kiválaszthatja a feladatának megfelelőt.

    AUC-ROC és AUC-PR

    Amikor az algoritmus valódi válaszát (általában az osztályhoz való tartozás valószínűségét, lásd az SVM -et külön -külön) bináris címkévé alakítjuk, akkor ki kell választanunk néhány küszöböt, amelynél a 0 1 lesz. A 0,5 -ös egyenlő természetesnek és közelinek tűnik , de nem mindig derül ki optimálisan, például az osztályegyensúly fent említett hiányában.


    A modell egészének értékelésének egyik módja, anélkül, hogy egy adott küszöbértékhez lenne kötve, az AUC -ROC (vagy ROC AUC) - terület ( A rea U nder C urve) a hibagörbe alatt ( R eceiver O perating C jellemző görbe). Ez a görbe a (0,0) és (1,1) közötti egyenes a valódi pozitív arányban (TPR) és a hamis pozitív arányban (FPR):




    A TPR -t már ismerjük, ez a teljesség, és az FPR megmutatja, hogy az algoritmus a negatív osztály objektumainak hány százalékát jósolta rosszul. Ideális esetben, amikor az osztályozó nem hibázik (FPR = 0, TPR = 1), akkor a görbe alatti területet eggyel kapjuk; ellenkező esetben, ha az osztályozó véletlenszerűen ad ki osztály valószínűségeket, akkor az AUC-ROC értéke 0,5 lesz, mivel az osztályozó ugyanannyi TP-t és FP-t ad ki.
    A grafikon minden pontja megfelel egy bizonyos küszöbérték kiválasztásának. A görbe alatti terület ebben az esetben az algoritmus minőségét mutatja (a több jobb), ráadásul maga a görbe meredeksége is fontos - a TPR -t maximalizálni szeretnénk az FPR minimalizálásával, ami azt jelenti, hogy a görbénk ideális esetben hajlamos a pont (0,1).


    ROC görbe rajzkódja

    sns.set (font_scale = 1.5) sns.set_color_codes ("muted") plt.figure (figsize = (10, 8)) fpr, tpr, küszöbértékek = roc_curve (y_test, lr.predict_proba (X_test) [:, 1], pos_label = 1) lw = 2 plt.plot (fpr, tpr, lw = lw, label = "ROC görbe") plt.plot (,) plt.xlim () plt.ylim () plt.xlabel ("Hamis pozitív arány ") plt.ylabel (" True Positive Rate ") plt.title (" ROC curve ") plt.savefig (" ROC.png ") plt.show ()



    Az AUC-ROC kritérium ellenáll a kiegyensúlyozatlan osztályoknak (spoiler: sajnos nem minden ennyire egyértelmű), és úgy értelmezhető, mint annak valószínűsége, hogy egy véletlenszerűen kiválasztott pozitív objektumot magasabb besorolású lesz (nagyobb valószínűséggel lesz pozitív) ), mint egy véletlenszerűen kiválasztott negatív objektum ...


    Tekintsük a következő problémát: 100 millió dokumentumot kell kiválasztanunk 1 millió dokumentum közül. Két algoritmust sajátítottunk el:

    • 1. algoritmus 100 dokumentumot küld vissza, amelyek közül 90 releváns. Így,

    • 2. algoritmus 2000 dokumentumot küld vissza, amelyek közül 90 releváns. Így,


    Valószínűleg az első algoritmust választanánk, amely versenytársához képest nagyon kevés hamis pozitív eredményt produkál. De a különbség a hamis pozitív arányban a két algoritmus között rendkívül kicsi - csak 0,0019. Ez annak a ténynek a következménye, hogy az AUC-ROC a hamis pozitív arányt méri a valódi negatívhoz viszonyítva, és azokban a problémákban, ahol a második (nagyobb) osztály nem olyan fontos számunkra, nem biztos, hogy teljesen megfelelő képet ad az algoritmusok összehasonlításakor .


    A helyzet kijavítása érdekében térjünk vissza a teljességhez és a pontossághoz:

    • 1. algoritmus

    • 2. algoritmus


    Itt már észrevehető a két algoritmus közötti jelentős különbség - 0,855 pontosság!


    A pontosságot és a visszahívást is használják a görbe felépítéséhez, és az AUC-ROC-hoz hasonlóan megtalálják az alatta lévő területet.



    Itt megjegyezhető, hogy kis adathalmazokon a PR-görbe alatti terület túlzottan optimista lehet, mert a trapézmetszettel számítják ki, de általában elegendő adat van az ilyen feladatokban. Az AUC-ROC és az AUC-PR közötti kapcsolat részleteit lásd itt.

    Logisztikai veszteség

    A logisztikai veszteségfüggvény elkülönül, a következőképpen definiálva:



    itt az algoritmus válasza a -edik objektumon, a valódi osztálycímke a -es objektumon és a minta mérete.


    A logisztikai veszteségfüggvény matematikai értelmezésének részleteit már a lineáris modellekről szóló bejegyzés keretében írtuk.
    Ez a mutató ritkán jelenik meg az üzleti követelményekben, de gyakran a kaggle feladatokban.
    Intuitív módon a logloss minimalizálása a pontosság maximalizálásának feladatának tekinthető a hibás előrejelzések büntetésével. Meg kell azonban jegyezni, hogy a logloss rendkívül erőteljesen bünteti az osztályozó rossz válaszba vetett bizalmát.


    Vegyünk egy példát:


    def logloss_crutch (y_true, y_pred, eps = 1e -15): return - (y_true * np.log (y_pred) + (1 - y_true) * np.log (1 - y_pred)) print ("Logloss bizonytalan besorolással% f "% logloss_crutch (1, 0.5)) >> Logloss bizonytalan besorolással 0.693147 print (" Logloss, magabiztos besorolással és helyes válasz% f "% logloss_crutch (1, 0.9)) >> Logloss, magabiztos besorolással és helyes válasz 0.105361 print (" Logloss magabiztos osztályozással és rossz válasz% f "% logloss_crutch (1, 0,1)) >> Logloss magabiztos besorolással és rossz válasz 2.302585

    Vegye figyelembe, hogy a logloss drámaian nőtt a helytelen válasz és a magabiztos besorolás mellett!
    Következésképpen az egyik objektum hibája a teljes mintahiba jelentős romlását eredményezheti. Az ilyen objektumok gyakran kiugró értékek, amelyeket emlékezni kell arra, hogy szűrni vagy külön -külön figyelembe kell venni őket.
    Minden a helyére kerül, ha logloss grafikont rajzol:



    Látható, hogy minél közelebb a nullához az algoritmus válasza földi igazsággal = 1, annál magasabb a hibaérték és annál meredekebb a görbe.

    Összefoglaljuk:

    • Többosztályú besorolás esetén gondosan figyelemmel kell kísérnie az egyes osztályok mutatóit, és követnie kell a döntés logikáját feladatokat nem pedig a mutató optimalizálása
    • Egyenlőtlen osztályok esetén ki kell választani az osztályok egyensúlyát a képzéshez, és olyan mutatót, amely helyesen tükrözi az osztályozás minőségét.
    • és madrugado segítségért ebben a cikkben.

    Ez a fejezet a klasszifikációs modell minőségének értékelésére szolgáló népszerű módszereket mutat be, amelyeket többek között az e témában készült egyéb munkákban is használnak. Az értékeléshez használt mutatók leírása és indoklása megtalálható.

    Minőségértékelési mutatók

    Teljes pontosság

    Ez a mutató az egyik legegyszerűbb és egyben univerzális mutató az osztályozási algoritmusok teljesítményének értékelésére. Ennek az együtthatónak az értékét a helyesen osztályozott objektumok arányában kell kiszámítani a minta összes objektumából. Ez a mutató népszerű az egyszerűsége és a tetszőleges számú osztályra való kiterjesztés miatt. Ennek a mutatónak a fő hátránya, hogy minden dokumentumnak azonos súlyt tulajdonít, ami helytelen lehet abban az esetben, ha a dokumentumok egy vagy több osztály felé erősen elmozdulnak. Ennek a mutatónak nagy értéke lehet, de az azonos osztályba tartozó osztályozó rendkívül alacsony minőségű munkát mutathat. Ugyanakkor a mutató ezt semmilyen módon nem jelzi.

    Pontosság, teljesség és F-mérték

    Az olyan mutatókat, mint a pontosság és a visszahívás, először széles körben használták az információ -visszakeresési problémákat megoldó rendszerek teljesítményének értékelésében. A rendszer pontossága egy osztályon belül azoknak az objektumoknak az aránya, amelyek valóban egy bizonyos osztályhoz tartoznak, a rendszer által ehhez az osztályhoz rendelt összes objektumhoz képest. A teljességet az osztályba tartozó osztályozó által az objektumhoz tartozó objektumok arányában fejezik ki az osztály összes objektumához viszonyítva. A 4. táblázat egy külön osztály esetlegességi táblázata, ahol a TP (igaz pozitív) egy igaz pozitív döntés, a TN (igaz negatív) egy igaz negatív döntés, az FP (hamis pozitív) egy hamis pozitív döntés, és az FN (hamis negatív) hamis. -negatív döntés.

    1. táblázat - Objektumosztály esetlegességeinek táblázata

    Így a pontosságot és a teljességet a következőképpen kell kiszámítani:

    Az F-mérő egyesíti az értékelt algoritmus pontosságára és teljességére vonatkozó információkat. A pontossági és teljességi mutatók harmonikus átlagaként számítják ki:

    Annak a ténynek köszönhetően, hogy az F-mértéket minden osztályra külön számítják ki, kényelmesen használható az algoritmus bizonyos hibáinak keresésére és elemzésére, valamint egy több osztályt tartalmazó osztályozás értékelésére. Ezenkívül nagyszámú osztály esetében olyan jellemzőre van szükség, amely összesíti a teljességet és a pontosságot minden osztályra, és jellemzi a rendszer általános viselkedését. Ebben a munkában a következő összesített értékeket használják erre a célra: makró pontosság, amelyet a pontosság számtani átlagaként számítanak ki minden osztályra, makró visszahívás, amelyet az összes osztály teljességének számtani átlagaként számítanak ki, és a makró F-mérték (Macro F-score), ami a köztük lévő harmonikus átlag.

    Kereszt -érvényesítés

    A kereszt-érvényesítés az egyik leggyakoribb módszer a teljes tesztelésre és a különböző gépi tanulási algoritmusok teljesítményének értékelésére. Független minta esetén ez a módszer lehetővé teszi a hiba valószínűségének elfogulatlan becslését, ellentétben a betanított minta átlagos hibájával, amely lehet az algoritmus túllépése miatt elfogult becslés a hiba valószínűségéről. Ennek az eljárásnak egy másik előnye, hogy képes megbecsülni az algoritmushiba valószínűségét, külön tesztelésre tervezett kontrollminta hiányában.

    Tegyük fel, hogy az objektumok jellemzőleírásának halmaza, amelyen a használati esetek véges mintája van megadva, ahol az osztályok véges halmaza található. Adott egy leképezés, amely egy algoritmust rendel a használati esetek tetszőleges kiválasztásához. Ezután az algoritmus minőségét tetszőleges példaértékű mintára becsüljük a minőségi funkcionális segítségével:

    ahol van valamilyen nem negatív függvény, amely a helyes osztálycímkével adja vissza az algoritmushiba értékét.

    Helló, Habr!

    A gépi tanulási feladatokban a mérőszámokat használják a modellek minőségének felmérésére és a különböző algoritmusok összehasonlítására, ezek kiválasztása és elemzése pedig az adatkezelő munkájának elengedhetetlen része.

    Ebben a cikkben megvizsgálunk néhány minősítési kritériumot az osztályozási problémákban, megvitatjuk, hogy mi a fontos a mutató kiválasztásakor, és mi romolhat el.

    Metrikák az osztályozási problémákban

    Hasznos funkciók bemutatására sklearnés a mérőszámok vizuális ábrázolása, a távközlési szolgáltató ügyfeleinek számáról szóló adatkészletünket fogjuk használni, amelyet a tanfolyam első cikkében ismertünk meg.

    Töltsük be a szükséges könyvtárakat, és nézzük meg az adatokat

    Pandák importálása pd -ként importálás matplotlib.pyplot plt -ként a matplotlib.pylab import rc -ből, ábrázolás importálja a seaborn -t sns -ként a sklearn.preprocessing import Labelmblencoder, OneHotEncoder a sklearn.model_selection import cross_val_score from sklearn.linear_modelarnioning GrainF innen: sklearn.metrics import pontosság_recall_curve, osztályozási jelentés sklearn.model_selection import train_test_split df = pd.read_csv ("../../ data/ telecom_churn.csv")

    Df.head (5)

    Adatok előfeldolgozása

    # Készítsük el a bináris oszlopok feltérképezését #, és kódoljuk az állapotot álkódolással (az egyszerűség kedvéért jobb, ha ezt nem tesszük fa modelleknél) d = ("Igen": 1, "Nem": 0) df ["Nemzetközi terv "] = df [" Nemzetközi terv "]. Térkép (d) df [" Hangposta terv "] = df [" Hangposta terv "]. Térkép (d) df [" Churn "] = df [" Churn "] . Astype ("int64") le = LabelEncoder () df ["State"] = le.fit_transform (df ["State"]) ohe = OneHotEncoder (sparse = False) encoded_state = ohe.fit_transform (df ["State"] . values.reshape (- 1, 1)) tmp = pd.DataFrame (kódolt_állapot, oszlopok = ["állapot" + str (i) az i tartományban (kódolt_állapot.alak)]) df = pd.concat (, tengely = 1)

    Pontosság, pontosság és visszahívás

    Mielőtt magukra a mutatókra térnénk, be kell vezetni egy fontos fogalmat, amely leírja ezeket a mutatókat az osztályozási hibák szempontjából - zavart mátrix(hiba mátrix).
    Tegyük fel, hogy van két osztályunk és egy algoritmusunk, amely megjósolja az egyes objektumok valamelyik osztályhoz való tartozását, akkor az osztályozási hibamátrix így fog kinézni:

    Igaz pozitív (TP) Hamis pozitív (FP)
    Hamis negatív (FN) Valódi negatív (TN)

    ez az algoritmus válasza az objektumon, és

    Az igazi osztálycímke ezen az objektumon.
    Így kétféle osztályozási hiba létezik: hamis negatív (FN) és hamis pozitív (FP).

    Algoritmusoktatás és a hibamátrix felépítése

    X = df.drop ("Churn", tengely = 1) y = df ["Churn"] # Oszd fel a mintát vonatra és tesztre, minden mérőszám kiértékelésre kerül az X_train, X_test, y_train, y_test = train_test_split ( X, y, stratify = y, test_size = 0,33, random_state = 42) # A natív logisztikai regresszió betanítása dokumentáció def plot_confusion_matrix (cm, osztályok, normalizálás = Hamis, cím = "(! LANG: Zavar mátrix", cmap=plt.cm.Blues): """ This function prints and plots the confusion matrix. Normalization can be applied by setting `normalize=True`. """ plt.imshow(cm, interpolation="nearest", cmap=cmap) plt.title(title) plt.colorbar() tick_marks = np.arange(len(classes)) plt.xticks(tick_marks, classes, rotation=45) plt.yticks(tick_marks, classes) if normalize: cm = cm.astype("float") / cm.sum(axis=1)[:, np.newaxis] print("Normalized confusion matrix") else: print("Confusion matrix, without normalization") print(cm) thresh = cm.max() / 2. for i, j in itertools.product(range(cm.shape), range(cm.shape)): plt.text(j, i, cm, horizontalalignment="center", color="white" if cm > thresh else "black") plt.tight_layout() plt.ylabel("True label") plt.xlabel("Predicted label") font = {"size" : 15} plt.rc("font", **font) cnf_matrix = confusion_matrix(y_test, lr.predict(X_test)) plt.figure(figsize=(10, 8)) plot_confusion_matrix(cnf_matrix, classes=["Non-churned", "Churned"], title="Zavart mátrix") plt.savefig("conf_matrix.png") plt.show()!}

    Pontosság

    Az intuitív, nyilvánvaló és szinte ki nem használt mutató a pontosság - az algoritmus helyes válaszainak százalékos aránya:

    Ez a metrika haszontalan az egyenlőtlen osztályok problémáiban, és könnyen példával mutatható be.

    Tegyük fel, hogy értékelni akarjuk a spam levelek szűrőjének teljesítményét. 100 nem spam e-mailünk van, amelyek közül 90 osztályozónk helyesen azonosította (igaz negatív = 90, hamis pozitív = 10) és 10 spam e-mail, amelyek közül 5 az osztályozó is helyesen azonosított (igaz pozitív = 5, hamis negatív = 5) .
    Akkor pontosság:

    Ha azonban az összes e-mailt nem spamként jósoljuk, akkor nagyobb pontosságot kapunk:

    Ugyanakkor modellünknek egyáltalán nincs előrejelző ereje, mivel eredetileg a spam üzeneteket akartuk azonosítani. Ennek leküzdésében segíteni fog bennünket az átállás a közös mutatóról minden osztályra az osztályok minőségének külön mutatóira.

    Pontosság, visszahívás és F-mérés

    Az algoritmus teljesítményének értékeléséhez az egyes osztályokon külön -külön bemutatjuk a pontossági és visszahívási mutatókat.

    A pontosság úgy értelmezhető, mint az osztályozó által pozitívnak és egyben valóban pozitívnak nevezett objektumok aránya, és a felidézés megmutatja, hogy a pozitív osztály összes objektumából hány százalék pozitív objektumot talált az algoritmus.

    A pontosság bevezetése nem teszi lehetővé, hogy minden objektumot egy osztályba írjunk, mivel ebben az esetben a hamis pozitív szint növekedését kapjuk. A visszahívás azt mutatja, hogy az algoritmus általában képes észlelni egy adott osztályt, a pontosság pedig azt, hogy meg tudja különböztetni ezt az osztályt a többi osztálytól.

    Mint korábban említettük, kétféle osztályozási hiba létezik: hamis pozitív és hamis negatív. A statisztikákban az első típusú hibát I. típusú hibának, a másodikat II. Az előfizetői számok meghatározásával kapcsolatos problémánkban az első hiba az lesz, hogy lojális előfizetőt fogadunk el a kimenőhöz, mivel nullhipotézisünk szerint egyik előfizető sem távozik, és ezt a hipotézist elutasítjuk. Ennek megfelelően a második típusú hiba a kimenő előfizető "kihagyása" és a nullhipotézis hibás elfogadása lesz.

    A pontosság és a visszahívás nem függ a pontosságtól, az osztályok arányától, ezért alkalmazhatók a kiegyensúlyozatlan minták körülményei között.
    A gyakorlatban gyakran az a feladat, hogy megtaláljuk az optimális (a vevő számára) egyensúlyt e két mutató között. Klasszikus példa az ügyfél -torzítás meghatározásának problémája.
    Nyilván nem találunk mindenböl kimenő ügyfelek és csakőket. De miután azonosítottuk az ügyfelek megtartásának stratégiáját és erőforrásait, kiválaszthatjuk a szükséges pontossági és visszahívási küszöbértékeket. Például összpontosíthat arra, hogy csak magas hozamú ügyfeleket tartson fenn, vagy azokat, akik nagyobb valószínűséggel jelentenek, mivel korlátozott számunkra a call center erőforrás.

    Általában egy algoritmus hiperparamétereinek optimalizálásakor (például rácson keresztüli iteráció esetén) GridSearchCV), egy metrikát használnak, amelynek javulását a tesztmintán várjuk.
    Számos különböző módszer létezik a pontosság és a visszahívás egyesítésére a minőségi mérőszámban. F-mérték (általában

    ) - harmonikus átlag pontosság és visszahívás:

    ebben az esetben meghatározza a mérési pontosság súlyát és

    ez a harmonikus átlag (2 -es szorzóval, így pontosság = 1 és visszahívás = 1 esetén

    )
    Az F-mérték akkor éri el maximumát, ha a teljesség és a pontosság egyenlő eggyel, és közel van a nullához, ha az egyik argumentum nulla közeli.
    A Sklearn egy praktikus _metrics.classification funkcióval rendelkezik jelentés visszatérő visszahívás, pontosság és F-mérés minden osztályra, valamint az egyes osztályok példányainak száma.

    Jelentés = osztályozási jelentés (y_test, lr.predict (X_test), target_names = ["Non-churned", "Churned"]) print (report)

    osztály pontosság visszahívás f1-pontszám támogatás
    Keverésmentes 0.88 0.97 0.93 941
    Kavarva 0.60 0.25 0.35 159
    átlag / összesen 0.84 0.87 0.84 1100

    Itt meg kell jegyezni, hogy a kiegyensúlyozatlan osztályokkal kapcsolatos problémák esetén, amelyek a gyakorlatban érvényesülnek, gyakran szükség van az adatkészlet mesterséges módosítási technikáinak igénybevételére az osztályok arányának kiegyenlítése érdekében. Sokan vannak, és nem fogunk hozzájuk nyúlni, megnézhet néhány módszert, és kiválaszthatja a feladatának megfelelőt.

    AUC-ROC és AUC-PR

    Amikor az algoritmus valódi válaszát (általában az osztályhoz való tartozás valószínűségét, lásd az SVM -et külön -külön) bináris címkévé alakítjuk, akkor ki kell választanunk néhány küszöböt, amelynél a 0 1 lesz. A 0,5 -ös egyenlő természetesnek és közelinek tűnik , de nem mindig derül ki optimálisan, például az osztályegyensúly fent említett hiányában.

    A modell egészének értékelésének egyik módja, anélkül, hogy egy adott küszöbértékhez lenne kötve, az AUC -ROC (vagy ROC AUC) - terület ( A rea U nder C urve) a hibagörbe alatt ( R eceiver O perating C jellemző görbe). Ez a görbe a (0,0) és (1,1) közötti egyenes a valódi pozitív arányban (TPR) és a hamis pozitív arányban (FPR):

    A TPR -t már ismerjük, ez a teljesség, és az FPR megmutatja, hogy az algoritmus a negatív osztály objektumainak hány százalékát jósolta rosszul. Ideális esetben, ha az osztályozó nem hibázik (FPR = 0, TPR = 1), akkor a görbe alatti területet eggyel kapjuk, ellenkező esetben, ha az osztályozó véletlenszerűen adja ki az osztály valószínűségeit, az AUC-ROC 0,5 lesz, mivel az osztályozó azonos mennyiségű TP -t és FP -t bocsát ki.
    A grafikon minden pontja megfelel egy bizonyos küszöbérték kiválasztásának. A görbe alatti terület ebben az esetben az algoritmus minőségét mutatja (a több jobb), ráadásul maga a görbe meredeksége is fontos - a TPR -t maximalizálni szeretnénk az FPR minimalizálásával, ami azt jelenti, hogy a görbénk ideális esetben hajlamos a pont (0,1).

    ROC görbe rajzkódja

    Sns.set (font_scale = 1.5) sns.set_color_codes ("muted") plt.figure (figsize = (10, 8)) fpr, tpr, küszöbértékek = roc_curve (y_test, lr.predict_proba (X_test) [:, 1], pos_label = 1) lw = 2 plt.plot (fpr, tpr, lw = lw, label = "ROC görbe") plt.plot (,) plt.xlim () plt.ylim () plt.xlabel ("Hamis pozitív arány ") plt.ylabel (" True Positive Rate ") plt.title (" ROC curve ") plt.savefig (" ROC.png ") plt.show ()

    Az AUC-ROC kritérium ellenáll a kiegyensúlyozatlan osztályoknak (spoiler: sajnos, de nem minden ennyire egyértelmű), és úgy értelmezhető, mint annak a valószínűsége, hogy egy véletlenszerűen kiválasztott pozitív objektumot magasabb besorolású lesz (nagyobb valószínűséggel pozitív), mint egy véletlenszerűen kiválasztott negatív objektum.

    Tekintsük a következő problémát: 100 millió dokumentumot kell kiválasztanunk 1 millió dokumentum közül. Két algoritmust sajátítottunk el:

    • 1. algoritmus 100 dokumentumot küld vissza, amelyek közül 90 releváns. Így,
    • 2. algoritmus 2000 dokumentumot küld vissza, amelyek közül 90 releváns. Így,

    Valószínűleg az első algoritmust választanánk, amely versenytársához képest nagyon kevés hamis pozitív eredményt produkál. De a különbség a hamis pozitív arányban a két algoritmus között rendkívül kicsi - csak 0,0019. Ez annak a ténynek a következménye, hogy az AUC-ROC a hamis pozitív arányt méri a valódi negatívhoz viszonyítva, és azokban a problémákban, ahol a második (nagyobb) osztály nem olyan fontos számunkra, nem biztos, hogy teljesen megfelelő képet ad az algoritmusok összehasonlításakor .

    A helyzet kijavítása érdekében térjünk vissza a teljességhez és a pontossághoz:

    • 1. algoritmus
    • 2. algoritmus

    Itt már észrevehető a két algoritmus közötti jelentős különbség - 0,855 pontosság!

    A pontosságot és a visszahívást is használják a görbe felépítéséhez, és az AUC-ROC-hoz hasonlóan megtalálják az alatta lévő területet.

    Itt megjegyezhető, hogy kis adathalmazokon a PR-görbe alatti terület túlzottan optimista lehet, mert a trapézmetszettel számítják ki, de általában elegendő adat van az ilyen feladatokban. Az AUC-ROC és az AUC-PR közötti kapcsolat részleteit lásd itt.

    Logisztikai veszteség

    A logisztikai veszteségfüggvény elkülönül, a következőképpen definiálva:

    ez az algoritmus válasza

    Ohm tárgy,

    valódi osztálycímke

    Ohm tárgy, és

    minta nagysága.

    A logisztikai veszteségfüggvény matematikai értelmezésének részleteit már a lineáris modellekről szóló bejegyzés keretében írtuk.
    Ez a mutató ritkán jelenik meg az üzleti követelményekben, de gyakran a kaggle feladatokban.
    Intuitív módon a logloss minimalizálása a pontosság maximalizálásának feladatának tekinthető a téves előrejelzések büntetésével. Meg kell azonban jegyezni, hogy a logloss rendkívül erőteljesen bünteti az osztályozó rossz válaszba vetett bizalmát.

    Vegyünk egy példát:

    Def logloss_crutch (y_true, y_pred, eps = 1e -15): return - (y_true * np.log (y_pred) + (1 - y_true) * np.log (1 - y_pred)) print ("Logloss bizonytalan besorolással% f "% logloss_crutch (1, 0.5)) >> Logloss bizonytalan besorolással 0.693147 print (" Logloss, magabiztos besorolással és helyes válasz% f "% logloss_crutch (1, 0.9)) >> Logloss, magabiztos besorolással és helyes válasz 0.105361 print (" Logloss magabiztos osztályozással és rossz válasz% f "% logloss_crutch (1, 0,1)) >> Logloss magabiztos besorolással és rossz válasz 2.302585

    Vegye figyelembe, hogy a logloss drámaian nőtt a helytelen válasz és a magabiztos besorolás mellett!
    Következésképpen az egyik objektum hibája a teljes mintahiba jelentős romlását eredményezheti. Az ilyen objektumok gyakran kiugró értékek, amelyeket emlékezni kell arra, hogy szűrni vagy külön -külön figyelembe kell venni őket.
    Minden a helyére kerül, ha logloss grafikont rajzol:

    Látható, hogy minél közelebb a nullához az algoritmus válasza földi igazsággal = 1, annál magasabb a hibaérték és annál meredekebb a görbe.

    Összegezve:

    • Többosztályú besorolás esetén gondosan figyelemmel kell kísérnie az egyes osztályok mutatóit, és követnie kell a döntés logikáját feladatokat nem pedig a mutató optimalizálása
    • Egyenlőtlen osztályok esetén ki kell választani az osztályok egyensúlyát a képzéshez, és olyan mutatót, amely helyesen tükrözi az osztályozás minőségét.
    • A mérőszám kiválasztását a tárgykörre összpontosítva, az adatok előfeldolgozásával és esetleg szegmentálásával kell elvégezni (például gazdag és szegény ügyfelekre való felosztás esetén)

    Hasznos Linkek

    1. Jevgenyij Sokolov tanfolyama: Szeminárium a modellek kiválasztásáról (van információ a regressziós problémák metrikájáról)
    2. Problémák az AUC-ROC-nál az A.G. Dyakonova
    3. A kaggle egyéb mutatóiról bővebben olvashat. Az egyes mutatók leírásához hozzáadtak egy linket a versenyhez, ahol azt használták
    4. Bogdan Melnik aka ld86 előadása a kiegyensúlyozatlan mintákon való képzésről

    UDC 519.816

    S. V. SEMENIKHIN L. A. DENISOVA

    Omszki Állami Műszaki Egyetem

    RANGE GÉP TANULÁSI MÓDSZER

    AZ YRSO METRIC MÓDOSÍTOTT GENETIKUS ALGORITHUMÁN ALAPUL

    Figyelembe vesszük a dokumentumok rangsorolásának problémáját az információs keresési eredményoldalon, valamint a rangsorolás gépi tanulási kérdéseit. Módszert javasolnak a rangsorolási funkció optimalizálására a NOCO minőségi mutató segítségével, módosított genetikai algoritmus alapján. A kifejlesztett algoritmusok (a LETO ^ tesztgyűjteményeken) kutatását elvégeztük, és bemutattuk azok hatékonyságát a rangsor gépi tanulásában.

    Kulcsszavak: információkeresés, gépi tanulási rangsor, relevancia, optimalizálás, genetikai algoritmusok.

    1. Bemutatkozás. A modern információszerzési rendszerekben (ISS) a rendszer által üzemeltetett adatmennyiségek olyan nagyok, hogy a legfontosabb feladat a releváns dokumentumok rangsorolása a felhasználó keresési lekérdezése alapján. Az ISS fejlődésének ezen szakaszában a gépi tanulás (ML) rangsor a legnagyobb érdeklődés. Az ML meglévő, numerikus módszereken (különösen gradiens módszereken) vagy analitikai számításokon alapuló megközelítéseinek számos hátránya van, amelyek jelentősen befolyásolják az információkeresés minőségét és a releváns dokumentumok rangsorolásához szükséges időt.

    A kutatás elején a gépi tanulás rangsorolásának listás megközelítéseit vették figyelembe, amelyek többsége a gradiens leszármazás módszerét használja. A vizsgált munkákban az ML a keresési minőségi mutatók (SEQ) optimalizálására redukálódik, de csak a folyamatos függvények által képviselt mutatókat használják. Ez a korlátozás gyakran ahhoz a tényhez vezet, hogy az optimalizálás eredményeként a rangsorolási funkció alacsonyabb pontszámokkal rendelkezik számos fontos elfogadott mutató (DCG, nDCG, Graded Mean Reciprocal Rank stb.) Esetében, amelyek diszkrét függvények. A tanulmány genetikai algoritmusok (GA) használatát javasolja a rangsorok oktatásában, hogy minimalizálja Huber veszteségfüggvényét, referenciaértékként a relevancia szakértői értékeléseit használva. Javasolták az ML megközelítését is, amely az információ -visszakeresés minőségének diszkrét mutatóinak optimalizálásán alapul.

    2. A gépi tanulás rangsorolásának problémája. A legtöbb modern információszerzési rendszerben a rangsorolási funkció n egyszerű rangsorolási függvény (PRF) alapján épül fel, és így írható fel:

    ahol az SRF¡ a d dokumentum és a q lekérdezés egyszerű rangsorolási függvénye, WCi az egyszerű rangsorolási függvény súly együtthatója, n a PRF -ek száma a rangsorolási rendszerben.

    A rangsoroláshoz használt gépi tanulás során a B keresési dokumentumok és az LBTOY tesztgyűjteményből származó O lekérdezések halmazát használták. Minden deO kéréshez egy pár jön létre minden deD dokumentummal. Az IRS minden ilyen pár esetében meghatározza a keresési eredmények rangsorolásához használt relevanciaértékeket. A rangsorolás minőségének felméréséhez a rendszer minden dokumentum-lekérdezési párhoz (^, e) E referencia relevanciaértékeket igényel. Ebből a célból releváns szakértői értékeléseket alkalmaznak.

    A vizsgálat elvégzéséhez egy ISS -t használtunk, amelyben a rangsorolás N = 5 egyszerű rangsorolási függvény alapján történik SRFi (WC) l г = 1, N, amelyek az optimalitás vektoros kritériumát alkotják:

    ahol WCе (WC) a változó paraméterek vektora; (ШС), (ЯБ) a paraméterek és a vektor kritériumok tere.

    A genetikai algoritmusok alkalmazása az ML rangsorban lehetővé teszi a diszkrét minőségi mutatók, például az nDCG maximalizálását. A nDCG mutatót a dokumentumok rangsorolásához a keresőmotorban a következő kifejezés szerint kell meghatározni:

    DCG @ n = X 2 ---

    RF (q, d) = X WC. ■ SRF., I = 1 1 1

    ahol a (p) osztály az átlagos relevancia pontszám, amelyet a szakértők adtak az eredménylistában a p. pozícióban található dokumentumhoz, gradee; 1 / log2 (2 + p) - együttható a dokumentum pozíciójától függően (az első dokumentumoknak nagyobb súlyuk van).

    Ekkor az NDCG normalizált verziója így lesz írva

    N000 @ n = RSD @ n / g,

    ahol r a normalizációs tényező, amely megegyezik a maximális lehetséges 0С értékkel [e -mail védett] n adott lekérdezés esetén (azaz egyenlő az ideális rangsor OOO -jával).

    Így az OSS metrikájának optimalizálása (maximalizálása) érdekében a célfüggvény (YM) a következő formában lesz írva

    3. A keresési eredmények rangsorolásának minőségi mutatói. Amikor a dokumentumokat rangsorolja a keresési eredmények között, a minőségi mutatók kritériumként működnek. Az ISS minőségének értékelésére általánosan elfogadott mutatók listájából három fő mutatót választottak ki, amelyek az információ -visszakeresés pontosságát, relevanciáját és teljességét értékelik.

    1. Az információ -visszakeresés pontosságának kritériuma

    ahol a a talált releváns dokumentumok száma, b a relevánsnak tévedett dokumentumok száma.

    2. A Bpref kritérium, amely értékeli az információkeresés relevanciáját, egy feladat feldolgozására szolgál R releváns dokumentumokkal, és a képlet alapján számítják ki

    Bpref = - ^ (1 - Non Re ¡Before (r) / R). (4)

    Itt r egy ismert releváns dokumentumot jelöl, és a NonRelBefore (r) - az ismert irreleváns dokumentumok száma, amelyek magasabbak, mint az r (a számítás során csak a futásból származó becsült irreleváns dokumentumok első R -t veszik figyelembe).

    3. A keresési eredmények teljességének kritériuma

    r = a / (a+ c),

    ahol a a talált releváns dokumentumok száma, c a nem talált releváns dokumentumok száma.

    4. Tesztgyűjtemények. A gépi tanulási feladatok során a rangsoroláshoz dokumentumok és lekérdezések szükségesek, szakértők által meghatározott releváns pontszámokkal. Ezeket az adatokat a rangsorolási funkció gépi tanulására, valamint a minőségértékelésre használják fel.

    a keresési eredmények rendszer szerinti rangsorolása. Az ML folyamat során a tesztgyűjteményeket képzési készletként használják, és ezért jelentős hatással vannak az eredményekre. A dokumentumok és kérések tesztgyűjteményét a LETOR -t használták a kutatáshoz. Ezt a gyűjteményt a Microsoft Research információ -visszakeresésre használja. asztal Az 1. ábra a LETOR tesztgyűjtemények jellemzőit mutatja.

    5. Módosított genetikai algoritmus. Ahhoz, hogy genetikai algoritmusokat használhassunk a gépi tanulásban a rangsoroláshoz, a problémát úgy kell megfogalmazni, hogy a megoldást vektorként (genotípusként) kódolják, ahol minden gén lehet bit, szám vagy más objektum. Ebben az esetben a genotípust a megfelelő rangsorolási tényezők súlyozási tényezőinek vektorával ábrázoljuk. A genetikai algoritmus végrehajtásának leállításának feltétele az optimális megoldás megtalálása, a generációk számának kimerülése vagy az evolúcióra szánt idő.

    Meg kell jegyezni, hogy a GA -k a leghatékonyabbak a globális szélsőségek területének keresésében, de lassan tudnak működni, ha szükség van egy helyi minimum megtalálására ezen a területen. A hátrány elkerülésének javasolt módja egy módosított genetikai algoritmus (MGA) létrehozása, amely átvált helyi (nagysebességű) optimalizáló algoritmusra, miután megtalálta a globális optimális régiót az alapvető GA segítségével. A javasolt MGA egy hibrid módszer, amely a klasszikus GA -n és a Nelder -Mead módszeren alapul (szimplex algoritmus). A Nelder - Mead módszer, egy gyakran használt nemlineáris optimalizálási algoritmus, egy numerikus módszer egy objektív függvény minimumának meghatározására egy többdimenziós térben. Az ebben a cikkben javasolt hibrid MGA algoritmus a Nelder - Mead módszerre vált, miután a GA leállításának feltételei teljesültek. Az MGA algoritmus tömbvázlata az ábrán látható. egy.

    A kutatás végrehajtásakor elfogadták a célfüggvény számításainak korlátozását (Nrf = 16 000), amikor a globális extremum régiót keresték, és a feltételeket, hogy a Nelder - Mead módszer alapján helyi optimalizáló algoritmusra váltsanak ( az alapvető genetikai algoritmus az Nrf műveletek 75% -át hajtotta végre).

    6. Eredmények. A gépi tanulási algoritmus használatával végzett kutatás eredményeként

    Asztal 1

    Dokumentumok és lekérdezések száma a tesztgyűjteményekben

    Tesztgyűjtemény neve Alrendszer neve Kérések száma Dokumentumok száma

    LETOR 4.0 MQ2007 1692 69623

    LETOR 4.0 MQ2008 784 15211

    LETOR 3.0 OHSUMED 106 16140

    LETOR 3.0 Gov03td 50 49058

    LETOR 3.0 Gov03np 150 148657

    LETOR 3.0 Gov03 LE 150 147606

    LETOR 3.0 Gov04td 75 74146

    LETOR 3.0 Gov04np 75 73834

    LETOR 3.0 Gov04 LE 75 74409

    Rizs. 1. A hibrid MVL algoritmus tömbvázlata genetikai algoritmusok és a Nelder-Mead módszer alapján

    Az LTR-MGA rangsorolásához a rangsorolási függvényhez tartozó WC * súlyok vektorát kapjuk. Ezenkívül a LETOYA tesztgyűjtemény adatai alapján értékelték a rangsorolási minőséget, amelyhez minőségi mutatókat számítottak ki. A rangsorolási minőség diszkrét mutatója [e -mail védett]értékeli a rendszerválasz első n dokumentumának minőségét. A rangsor minőségének értékelésére általánosan elfogadott mutatók a következők [e -mail védett], [e -mail védett]és [e -mail védett] Azonban a metrika értékektől függően történő változásainak részletesebb mérlegeléséhez [e -mail védett] minden n esetében 1 -től 10 -ig. A kifejlesztett algoritmus hatékonyságának összehasonlításához a meglévő megoldásokkal összehasonlító elemzést végeztünk a LETOIA 3.0 gyűjteményekben megadott rangsorolási algoritmusok használatával. A TB2003 és TB2004 tesztgyűjtemények NDCG metrika algoritmusainak futtatásának eredményei az ábrán láthatók. 2. Az eredmények azt mutatják, hogy az LTR-MGA algoritmus felülmúlja a tesztalgoritmusokat, a legmagasabb értékekkel

    vannak [e -mail védett](az első dokumentum szintjén). Az LTR-MGA algoritmus fölénye annak köszönhető, hogy a kísérletekben figyelembe vett teszt rangsorolási függvényekkel ellentétben a rangsorolási funkció optimalizálására javasolt megközelítésben az NDCG metrikát használják célfüggvényként.

    Annak érdekében, hogy a javasolt LTR-MGA algoritmus használatakor értékelni lehessen a rangsor minőségét, kiszámították a minőségi mutatók értékeit a dokumentumok rangsorolásához a keresési eredmények között (3. ábra). A rangsorolási eredmények összehasonlítása (2. táblázat) az alap rangsorolási funkció használatakor, az alapvető LTR-GA algoritmus és a módosított LTR-MGA algoritmus az utóbbi előnyét jelzi.

    Ezenkívül a tanulmány becsülte a MO rangsoroláshoz szükséges időt. Ez szükséges annak megerősítéséhez, hogy a javasolt LTR-MGA módszer ebben a mutatóban felülmúlja a hagyományos használaton alapuló megközelítést.

    Rizs. 2. A gépi tanulási algoritmusok összehasonlítása a rangsoroláshoz

    a tesztgyűjtemények NDCG metrikája szerint: bal oldalon - a Gov03td adatkészlet, jobb oldalon - a Gov04td adatkészlet

    Rizs. 3. A rangsorolási minőségi mutatók értékelése az alapvető rangsorképhez és az LTR-GA és LTR-MGA tanulási algoritmusokhoz

    Minőségi mutatók rangsorolása a különböző rangsoroló gépi tanulási algoritmusokhoz

    2. táblázat

    Rangolási minőségi mutató Alap rangsorolási funkció LTR-GA LTR-MGA A metrika értékének növelése,%

    Pontosság 0,201 0,251 0,267 26,81

    [e -mail védett](első 5 dokumentum) 0,149 0,31 0,339 90,47

    [e -mail védett](első 10 dokumentum) 0,265 0,342 0,362 29,14

    Bpref 0,303 0,316 0,446 51,49

    Teljesség 0,524 0,542 0,732 39,03

    * A megfelelő mutatóhoz tartozó legjobb értékek szürkén vannak kiemelve

    onnogo genetikai algoritmus (LTA-OL). Az LTY-OL és LTY-MOL algoritmusok végrehajtására fordított idő összehasonlításának eredményeit a táblázat tartalmazza. 3.

    7. Következtetés. Így az elvégzett vizsgálatok kimutatták, hogy a javasolt megközelítés alkalmazása esetén az ISS-ben figyelembe vett rangsorolási mutatók értékei nőnek (átlagosan 19,55% -kal az LTS-OL algoritmushoz képest). Ez megerősíti, hogy a LITA-MOL megfelelően működik, és jelentősen javítja a rangsorolási funkciót, vagyis sikeresen megoldja az optimalizálási problémát. Módosított algoritmus használata

    A helyi optimalizálási módszer alkalmazása és az objektív függvény számításainak korlátozása miatt a gépi tanulás ideje csökkent (átlagosan 17,71% -kal a hagyományos LCHAOL genetikai algoritmushoz képest).

    A kifejlesztett gépi tanulási algoritmus az LТY-MOL rangsorolására használható az ISS-ben, amely az egyszerű rangsorolási funkciók kombinációján alapuló rangsorolási modellt használja. Figyelembe kell azonban venni a javasolt megközelítés alkalmazásának bizonyos korlátait. Alapján

    A gépi tanulási rangsor végrehajtási idejének becslése a képzési minta méretétől függően

    3. táblázat

    A szöveges dokumentumgyűjtemény mérete

    LTR-GA végrehajtási idő

    LTR-MGA futási idő

    A végrehajtási idő csökkentése,%

    Átlagos érték

    * A megfelelő tesztgyűjtemény -méret legjobb értékei szürkén vannak kiemelve

    a kapott eredmények közül kiderült, hogy a MO után a legmagasabb emelkedés figyelhető meg a rangsor minőségi mutatójában, amelynek értékét vettük célfüggvénynek. Ugyanakkor a többi mutató nem javulhat szignifikánsan, sőt egyes esetekben még ronthatja is az értékeiket. A hiányosság kiküszöbölésének egyik lehetséges módjaként javasoljuk az optimalizálási probléma megoldását többkritériumúként: a keresési eredmények több fő rangsorolási mutatójának egységes javítását ahelyett, hogy optimalizálnánk egyet. Ezenkívül a további tanulmányokban a tervek szerint kidolgoznak egy módszertant egy objektív függvény felépítésére, amely a fő rangsorolási minőségi mutatók lineáris konvolúcióján alapul az információ -lekérési folyamat javítása érdekében.

    Bibliográfiai lista

    1. Tie-Yan Liu. Megtanulni rangsorolni az információ -lekéréshez // Folyóirat -alapok és trendek az információ -visszakeresésben. Kt. 3. szám, 2009. március 3. P. 225-331.

    2. Christopher J. C. Burges, Tal Shaked, Erin Renshaw. Learning to Rank using Gradient Descent // Proceeding ICML "05 Proceedings of the 22.nd International Conference on Machine Learning, 2005. P. 89-96.

    3. Semenikhin, SV A gépi tanulás megközelítéseinek vizsgálata a dokumentumok rangsorolásához genetikai algoritmusokon alapuló keresőrendszer segítségével / SV Semenikhin // Fiatal Oroszország: fejlett technológiák az iparban. - 2013. - 2. sz. - 82–85.

    4. Multikritérium -optimalizálás genetikai algoritmusok alapján a vezérlőrendszerek szintézisében: monográfia. / L. A. Denisova. - Omszk: OmSTU Kiadó, 2014.- 170 p. -ISBN 978-5-8149-1822-2.

    5. Denisova, L. A. A vezérlőrendszer paraméteres szintézisének automatizálása genetikai algoritmus segítségével / L. A. Denisova, V. A. Meshcheryakov // Automatizálás az iparban. - 2012. - 7. sz. - 34 - 38. o.

    6. Huber, Peter J. A helyparaméter robusztus becslése // Annals of Statistics. - 1964. - 53. szám - P. 73-101.

    7. Semenikhin, S. V. Az információkeresés automatizálása multikritérium -optimalizálás és genetikai algoritmusok alapján / S. V. Semenikhin, L. A. Denisova // Rendszerek, mechanizmusok és gépek dinamikája. - 2014. - 3. szám - 224. - 227. o.

    8. Tie-Yan Liu, Jun Xu, Tao Qin, Wenying Xiong és Hang Li. LETOR: Benchmark Dataset for Research on Learning to Ranking for Information Retrieval // SIGIR 2007 Workshop on Learning to Rank for Information Retrieval. - 2007 .-- S. 3-10.

    9. Ageev, MS Az RMIP hivatalos metrikái "2004 / MS Ageev, IE Kuralenok // II. Orosz szeminárium az információszerzési módszerek értékeléséről (ROMIP 2004), Pushchino, 2004: tr .; Ed. S. Nekrest'yanova. - Szentpétervár: Kémiai Kutatóintézet, Szentpétervári Állami Egyetem - P. 142-150.

    10. J. A. Nelder, R. Mead, Egy szimplex módszer a funkciók minimalizálására, The Computer Journal 7 (1965). 308-313.

    Svyatoslav Vitalievich SEMENIKHIN, az Automatizált Információfeldolgozó és Vezérlő Rendszerek Tanszék posztgraduális hallgatója. Levelezési cím: [e -mail védett] DENISOVA Ljudmila Albertovna, műszaki tudományok doktora, az Automatizált Információfeldolgozó és Vezérlő Rendszerek Tanszék docense. Levelezési cím: [e -mail védett]