Metrika kvality v strojovom učení. Metriky v problémoch strojového učenia

Na prvkoch v každom zozname. Čiastkové poradie je zvyčajne určené zadaním skóre pre každý prvok (napríklad „relevantné“ alebo „nerelevantné“; sú možné viac ako dve známky). Cieľom hodnotiaceho modelu je aproximovať a zovšeobecniť najlepším spôsobom (v určitom zmysle) spôsob hodnotenia v tréningovom súbore pre nové údaje.

Ranking learning je stále pomerne mladá, rýchlo sa rozvíjajúca oblasť výskumu, ktorá sa objavila v roku 2000 so vznikom záujmu v oblasti získavania informácií o aplikácii metód strojového učenia na hodnotenie problémov.

Collegiate YouTube

  • 1 / 5

    Počas školenia hodnotiaceho modelu a počas jeho prevádzky je každá dvojica dokument-dotaz preložená do numerického vektora hodnotiacich prvkov (nazývaných tiež faktory hodnotenia alebo signály) charakterizujúcich vlastnosti dokumentu, dotazu a ich vzťah. Takéto znaky je možné rozdeliť do troch skupín:

    Nasleduje niekoľko príkladov funkcií hodnotenia používaných v súbore údajov LETOR, ktorý je v odbore dobre známy:

    • Hodnoty opatrení TF, TF-IDF, BM25 a jazykový model zhody s požiadavkou rôznych oblastí dokumentu (názov, adresa URL, hlavný text, text odkazu);
    • Dĺžky a súčty IDF zón dokumentov;
    • Poradie dokumentov získané rôznymi variantmi algoritmov poradia odkazov, ako sú PageRank a HITS.

    Poradie metrík kvality

    Existuje niekoľko metrík, pomocou ktorých sa hodnotí výkonnosť hodnotiacich algoritmov na vzorke a porovnáva sa s hodnotiteľmi. Často sú parametre hodnotiaceho modelu upravené tak, aby maximalizovali hodnotu jednej z týchto metrík.

    Príklady metrík:

    Klasifikácia algoritmu

    Tai-Yang Liu zo spoločnosti Microsoft Research Asia vo svojom článku „Learning to Rank for Information Retrieval“ a prejavoch na tematických konferenciách analyzoval existujúce metódy riešenia problému hodnotenia vyučovania a navrhol ich klasifikáciu do troch prístupov v závislosti od použitej vstupnej reprezentácie. . dátové a sankčné funkcie:

    Bodový prístup

    Poznámky

    1. Tie-Yan Liu (2009), Naučte sa hodnotiť pozíciu ako získavanie informácií, Foundations and Trends in Information Retrieval: Vol. 3: č. 3, s. 225-331, ISBN 978-1-60198-244-5, DOI 10.1561 / 1500000016... Prezentácie z prejavu T. Lewa na WWW 2009 sú k dispozícii.

    O odlive zákazníkov telekomunikačného operátora.


    Načítajme potrebné knižnice a pozrime sa na údaje

    import pand ako pd import matplotlib.pyplot ako plt z matplotlib.pylab import rc, plot import seaborn ako sns od sklearn.preprocessing import LabelmbleEncoder, OneHotEncoder from sklearn.model_selection from sklearn.inear_model zo sklearn.metrics import přesnosť_recall_curve, klasifikácia_ report z sklearn.model_selection import train_test_split df = pd.read_csv ("../../ data/ telecom_churn.csv")


    df.head (5)

    Predspracovanie údajov

    # Urobme mapovanie binárnych stĺpcov # a kódujme stav pomocou fiktívneho kódovania (pre jednoduchosť je lepšie to nerobiť pre drevené modely) d = („Áno“: 1, „Nie“: 0) df [„Medzinárodný plán "] = df [" Medzinárodný plán "]. Mapa (d) df [" Plán hlasovej pošty "] = df [" Plán hlasovej pošty "]. Mapa (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 (encoded_state, columns = ["state" + str (i) for i in range (encoded_state.shape)]) df = pd.concat (, axis = 1)

    Presnosť, precíznosť a spätná väzba

    Predtým, ako prejdeme k samotným metrikám, je potrebné zaviesť dôležitý koncept na opis týchto metrík z hľadiska chýb klasifikácie - matica zmätku(chybová matica).
    Predpokladajme, že máme dve triedy a algoritmus, ktorý predpovedá príslušnosť každého objektu k jednej z tried, potom matica chýb klasifikácie bude vyzerať takto:


    Skutočne pozitívne (TP) Falošne pozitívne (FP)
    Falošne negatívne (FN) Skutočne negatívny (TN)

    Tu je odpoveď algoritmu na objekt a je pravým označením triedy pre tento objekt.
    Existujú teda dva typy klasifikačných chýb: falošne negatívna (FN) a falošne pozitívna (FP).


    Tréning algoritmu a konštrukcia matice chýb

    X = df.drop ("Churn", os = 1) y = df ["Churn"] # Rozdelenie vzorky na vlak a test, všetky metriky sa vyhodnotia v súbore údajov testu X_train, X_test, y_train, y_test = train_test_split ( X, y, stratify = y, test_size = 0,33, random_state = 42) # Vlak natívnej logistickej regresie lr = LogisticRegression (random_state = 42) lr.fit (X_train, y_train) # Použite funkciu zostrojenia matice chýb zo sklearnu dokumentácia def plot_confusion_matrix (cm, triedy, normalizovať = nepravda, názov = "(! LANG: matica zmätku)", 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="Matica zmätku") plt.savefig("conf_matrix.png") plt.show()!}


    Presnosť

    Intuitívna, zrejmá a takmer nepoužitá metrika je presnosť - percento správnych odpovedí algoritmu:



    Táto metrika je pri problémoch s nerovnakými triedami zbytočná a je ľahké ju ukázať na príklade.


    Povedzme, že chceme vyhodnotiť výkonnosť filtra nevyžiadanej pošty. Máme 100 e-mailov bez spamu, z ktorých 90 náš klasifikátor identifikoval správne (True Negative = 90, False Positive = 10), a 10 nevyžiadaných e-mailov, z ktorých 5 klasifikátor tiež správne identifikoval (True Positive = 5, False Negative = päť ).
    Potom presnosť:



    Ak však všetky e-maily predpovedáme ako nevyžiadanú poštu, získame vyššiu presnosť:



    Náš model zároveň nemá žiadnu prediktívnu schopnosť, pretože pôvodne sme chceli identifikovať nevyžiadané správy. Aby sme to prekonali, pomôže nám prechod od spoločnej metriky pre všetky triedy k oddeleným ukazovateľom kvality tried.

    Presnosť, vyvolanie a F-meranie

    Aby sme zhodnotili výkonnosť algoritmu v každej z tried osobitne, zavádzame metriky presnosti a pripomenutia.




    Presnosť možno interpretovať ako podiel objektov pomenovaných klasifikátorom ako kladných a súčasne skutočne pozitívnych. Pripomenutie ukazuje, aký podiel objektov v pozitívnej triede zo všetkých objektov v pozitívnej triede našiel algoritmus.



    Je to zavedenie presnosti, ktoré nám neumožňuje zapísať všetky objekty do jednej triedy, pretože v tomto prípade dosiahneme zvýšenie úrovne falošne pozitívnych výsledkov. Recall demonštruje schopnosť algoritmu všeobecne detekovať danú triedu a presnosť demonštruje schopnosť odlíšiť túto triedu od ostatných tried.


    Ako sme už uviedli, existujú dva typy klasifikačných chýb: falošne pozitívny a falošne negatívny. V štatistikách sa prvý typ chyby nazýva chyba typu I a druhý sa nazýva chyba typu II. V našom probléme určovania striedania predplatiteľov bude chybou prvého druhu prijatie verného predplatiteľa ako odchádzajúceho, pretože naša nulová hypotéza je, že nikto z predplatiteľov neodchádza a my túto hypotézu odmietame. V dôsledku toho chybou druhého druhu bude „preskočenie“ odchádzajúceho predplatiteľa a chybné prijatie nulovej hypotézy.


    Presnosť a spätné získavanie nezávisí, na rozdiel od presnosti, na pomere tried, a preto sú použiteľné v podmienkach nevyvážených vzoriek.
    V reálnej praxi je často úlohou nájsť optimálnu (pre zákazníka) rovnováhu medzi týmito dvoma metrikami. Klasickým príkladom je problém určovania striedania zákazníkov.
    Očividne nemôžeme nájsť zo všetkých odchádzajúci zákazníci a iba ich. Keď sme však identifikovali stratégiu a zdroje na udržanie zákazníkov, môžeme vybrať potrebné prahové hodnoty pre presnosť a stiahnutie. Môžete sa napríklad zamerať na udržanie iba zákazníkov s vysokými výnosmi alebo tých, ktorí s väčšou pravdepodobnosťou odídu, pretože máme obmedzené zdroje telefonického centra.


    Obvykle pri optimalizácii hyperparametrov algoritmu (napríklad v prípade iterácie cez mriežku) GridSearchCV), používa sa jedna metrika, ktorej zlepšenie očakávame na testovacej vzorke.
    Existuje niekoľko rôznych spôsobov, ako skombinovať presnosť a pripomenutie do súhrnnej miery kvality. F -mierka (vo všeobecnosti) - presnosť harmonického harmonogramu a vyvolanie:



    V tomto prípade určuje hmotnosť presnosti v metrike, a keď je to harmonický priemer (s faktorom 2, takže v prípade presnosti = 1 a vyvolania = 1 mať)
    F-miera dosahuje svoje maximum, ak sú úplnosť a presnosť rovné jednej, a je blízka nule, ak je jeden z argumentov blízky nule.
    Sklearn má praktickú funkciu _metrics.classification správa, ktorý vracia vybavenosť, presnosť a F-mieru pre každú z tried, ako aj počet inštancií pre každú triedu.


    report = report_ klasifikácie (y_test, lr.predict (X_test), target_names = ["Non-churned", "Churned"]) print (report)
    trieda presnosť odvolať skóre f1 podpora
    Nespálené 0.88 0.97 0.93 941
    Obrátené 0.60 0.25 0.35 159
    priemer / celkom 0.84 0.87 0.84 1100

    Tu je potrebné poznamenať, že v prípade problémov s nevyváženými triedami, ktoré prevládajú v reálnej praxi, je často potrebné uchýliť sa k technikám umelej úpravy súboru údajov na vyrovnanie pomeru tried. Existuje veľa z nich, a nebudeme sa ich dotýkať, môžete sa pozrieť na niektoré metódy a vybrať si tú, ktorá vyhovuje vašej úlohe.

    AUC-ROC a AUC-PR

    Keď prevádzame skutočnú odpoveď algoritmu (spravidla pravdepodobnosť zaradenia do triedy, pozri SVM osobitne) na binárne označenie, musíme zvoliť nejaký prah, pri ktorom sa 0 stane 1. Prah rovnajúci sa 0,5 sa zdá byť prirodzený a blízky. , ale nie vždy sa to ukáže ako optimálne, napríklad v spomínanom nedostatku rovnováhy tried.


    Jedným zo spôsobov, ako hodnotiť model ako celok, bez viazania sa na konkrétny prah, je AUC -ROC (alebo ROC AUC) - oblasť ( A rea U nder C. urve) pod krivkou chýb ( R. eceiver O perating C. charakteristická krivka). Táto krivka je čiarou od (0,0) do (1,1) v súradniciach True Positive Rate (TPR) a False Positive Rate (FPR):




    TPR už poznáme, toto je úplnosť a FPR ukazuje, aký podiel objektov negatívnej triedy algoritmus predpovedal nesprávne. V ideálnom prípade, keď klasifikátor nerobí chyby (FPR = 0, TPR = 1), dostaneme plochu pod krivkou rovnú jednej; inak, keď klasifikátor náhodne vydáva pravdepodobnosti triedy, AUC-ROC bude mať tendenciu k 0,5, pretože klasifikátor bude vydávať rovnaký počet TP a FP.
    Každý bod v grafe zodpovedá voľbe určitého prahu. Plocha pod krivkou v tomto prípade ukazuje kvalitu algoritmu (čím viac, tým lepšie), okrem toho je dôležitá aj strmosť samotnej krivky - chceme maximalizovať TPR minimalizáciou FPR, čo znamená, že naša krivka by mala mať v ideálnom prípade tendenciu bod (0,1).


    Kód kresby krivky ROC

    sns.set (font_scale = 1,5) sns.set_color_codes ("tlmené") plt.figure (figsize = (10, 8)) fpr, tpr, thresholds = roc_curve (y_test, lr.predict_proba (X_test) [:, 1], pos_label = 1) lw = 2 plt.plot (fpr, tpr, lw = lw, label = "ROC curve") plt.plot (,) plt.xlim () plt.ylim () plt.xlabel ("False Positive Rate ") plt.ylabel (" True Positive Rate ") plt.title (" ROC curve ") plt.savefig (" ROC.png ") plt.show ()



    Kritérium AUC-ROC je odolné voči nevyváženým triedam (upozornenie na spoiler: bohužiaľ, nie všetko je také jednoznačné) a možno ho interpretovať ako pravdepodobnosť, že náhodne vybraný pozitívny predmet bude klasifikátorom zaradený vyššie (bude mať väčšiu pravdepodobnosť, že bude pozitívny) ako náhodne vybraný negatívny objekt ...


    Zvážte nasledujúci problém: z 1 milióna dokumentov musíme vybrať 100 relevantných dokumentov. Zvládli sme dva algoritmy:

    • Algoritmus 1 vráti 100 dokumentov, z ktorých 90 je relevantných. Preto

    • Algoritmus 2 vráti 2 000 dokumentov, z ktorých 90 je relevantných. Preto


    S najväčšou pravdepodobnosťou by sme vybrali prvý algoritmus, ktorý produkuje veľmi málo falošných pozitív v porovnaní s jeho konkurentom. Ale rozdiel vo falošne pozitívnej miere medzi týmito dvoma algoritmami extrémne malý - iba 0,0019. Je to dôsledok skutočnosti, že AUC-ROC meria podiel falošne pozitívnych vo vzťahu k skutočným negatívnym a v problémoch, kde pre nás druhá (väčšia) trieda nie je taká dôležitá, nemusí pri porovnávaní algoritmov poskytovať úplne adekvátny obraz. .


    Aby sme situáciu napravili, vráťme sa k úplnosti a presnosti:

    • Algoritmus 1

    • Algoritmus 2


    Tu je už značný rozdiel medzi týmito dvoma algoritmami - presnosť 0,855!


    Presnosť a spätné získavanie sa tiež používajú na zostrojenie krivky a podobne ako AUC-ROC nájdu oblasť pod ňou.



    Tu je možné poznamenať, že na malých množinách údajov môže byť oblasť pod krivkou PR príliš optimistická, pretože sa počíta pomocou lichobežníkovej metódy, ale zvyčajne je v takýchto úlohách dostatok údajov. Podrobnosti o vzťahu medzi AUC-ROC a AUC-PR nájdete tu.

    Logistická strata

    Funkcia logistickej straty je oddelená a je definovaná ako:



    tu je odpoveď algoritmu na -tý objekt, je štítok skutočnej triedy na -tom objekte a veľkosť vzorky.


    Podrobnosti o matematickej interpretácii funkcie logistickej straty už boli napísané v rámci príspevku o lineárnych modeloch.
    Táto metrika sa zriedka vyskytuje v obchodných požiadavkách, ale často v úlohách na kaggle.
    Intuitívne možno minimalizáciu loglosu považovať za úlohu maximalizácie presnosti penalizáciou nesprávnych predpovedí. Je však potrebné poznamenať, že logloss je extrémne silne penalizovaný za dôveru klasifikátora v nesprávnu odpoveď.


    Uvažujme o príklade:


    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 with nejasná klasifikácia% f "% logloss_crutch (1, 0,5)) >> Logloss s neistou klasifikáciou 0,693147 print (" Logloss s dôvernou klasifikáciou a správnou odpoveďou% f "% logloss_crutch (1, 0,9)) >> Logloss s istou klasifikáciou a správnou odpoveďou 0,105361 tlač (" Logloss s dôvernou klasifikáciou a nesprávnou odpoveďou% f "% logloss_crutch (1, 0,1)) >> Logloss s dôvernou klasifikáciou a nesprávnou odpoveďou 2.302585

    Všimnite si, ako sa logloss dramaticky rozrástol s nesprávnou odpoveďou a sebavedomou klasifikáciou!
    V dôsledku toho chyba na jednom objekte môže mať za následok významné zníženie celkovej chyby vzorky. Takéto objekty sú často krajné hodnoty, ktoré je potrebné pamätať na to, aby boli filtrované alebo posudzované oddelene.
    Všetko zapadne na svoje miesto, ak nakreslíte loglogový graf:



    Je vidieť, že čím bližšie k nule je odpoveď algoritmu so základnou pravdou = 1, tým vyššia je chybová hodnota a strmšia krivka rastie.

    Zhrňme si:

    • V prípade viactriednej klasifikácie musíte starostlivo sledovať metriky každej z tried a riadiť sa logikou rozhodovania. úlohy namiesto optimalizácie metriky
    • V prípade nerovnakých tried je potrebné vybrať rovnováhu tried pre školenie a metriku, ktorá bude správne odrážať kvalitu klasifikácie
    • a madrugado za pomoc s týmto článkom.

    Táto kapitola predstavuje obľúbené metódy hodnotenia kvality klasifikačného modelu, ktoré sa okrem iného používajú aj v iných prácach na túto tému. Uvádza sa ich opis a odôvodnenie metrík použitých na toto hodnotenie.

    Metriky hodnotenia kvality

    Plná presnosť

    Táto metrika je jednou z najjednoduchších a zároveň univerzálnych metrík na hodnotenie výkonnosti klasifikačných algoritmov. Hodnota tohto koeficientu sa vypočíta ako podiel správne klasifikovaných predmetov z celkového počtu objektov vo vzorke. Táto metrika je populárna vďaka svojej jednoduchosti a možnosti rozšírenia na ľubovoľný počet tried. Hlavnou nevýhodou tejto metriky je, že všetkým dokumentom pripisuje rovnakú váhu, čo môže byť nesprávne v prípade výrazného posunu dokumentov v rámci školenia smerujúceho do jednej alebo viacerých tried. Táto metrika môže mať vysokú hodnotu, ale klasifikátor v rámci tej istej triedy môže vykazovať extrémne nízku kvalitu práce. Metrika to zároveň nijako nesignalizuje.

    Presnosť, úplnosť a F-mierka

    Metriky, ako sú presnosť a zapamätateľnosť, sa po prvýkrát široko používali pri hodnotení výkonnosti systémov riešiacich problémy s získavaním informácií. Presnosť systému v rámci jednej triedy je podiel objektov, ktoré skutočne patria do určitej triedy, vzhľadom na všetky objekty, ktoré systém do tejto triedy priradil. Úplnosť je vyjadrená ako podiel predmetov nájdených klasifikátorom patriacim do triedy vzhľadom na všetky objekty tejto triedy. Tabuľka 4 je kontingenčná tabuľka samostatnej triedy, kde TP (pravda pozitívne) je skutočne pozitívne rozhodnutie, TN (skutočne negatívne) je skutočne negatívne rozhodnutie, FP (falošne pozitívne) je falošne pozitívne rozhodnutie a FN (falošne negatívne) ) je falošné. -negatívne rozhodnutie.

    Tabuľka 1 - Tabuľka nepredvídateľných udalostí pre triedu predmetov

    Presnosť a úplnosť sa teda počíta takto:

    F-mierka kombinuje informácie o presnosti a úplnosti hodnoteného algoritmu. Vypočíta sa ako harmonický priemer ukazovateľov presnosti a úplnosti:

    Vzhľadom na to, že F-miera sa počíta zvlášť pre každú triedu, je vhodné ho použiť na vyhľadávanie a analýzu konkrétnych chýb algoritmu, na vyhodnotenie klasifikácie s niekoľkými triedami. Navyše v prípade veľkého počtu tried je potrebná charakteristika, ktorá by agregovala úplnosť a presnosť pre všetky triedy a charakterizovala celkové správanie systému. V tejto práci sa na tento účel používajú tieto agregované hodnoty: makro presnosť, ktorá sa vypočíta ako aritmetický priemer presnosti pre všetky triedy, vyvolanie makra, ktoré sa vypočíta ako aritmetický priemer úplnosti pre všetky triedy, a makro F- miera (makro F-skóre), čo je harmonický priemer medzi nimi.

    Krížová validácia

    Krížová validácia je jednou z najbežnejších metód úplného testovania a hodnotenia výkonnosti rôznych algoritmov strojového učenia. V prípade nezávislej vzorky táto metóda umožňuje získať nezaujatý odhad pravdepodobnosti chyby, na rozdiel od priemernej chyby na vyškolenej vzorke, čo môže byť skreslený odhad pravdepodobnosti chyby v dôsledku preplnenia algoritmu. Ďalšou výhodou tohto postupu je schopnosť získať odhad pravdepodobnosti chyby algoritmu v prípade, že neexistuje špeciálne navrhnutá kontrolná vzorka na testovanie.

    Predpokladajme, že ide o množinu popisov funkcií objektov, na ktorých je špecifikovaná konečná vzorka prípadov použitia, kde je konečná množina tried. Je dané mapovanie, ktoré priradí algoritmus ľubovoľnému výberu prípadov použitia. Potom sa kvalita algoritmu pre ľubovoľnú vzorku precedensov odhadne pomocou funkčnej kvality:

    kde je nejaká nezáporná funkcia, ktorá vracia hodnotu chyby algoritmu so štítkom správnej triedy.

    Ahoj, Habr!

    Pri úlohách strojového učenia sa metriky používajú na hodnotenie kvality modelov a porovnanie rôznych algoritmov a ich výber a analýza sú nepostrádateľnou súčasťou práce datatanistu.

    V tomto článku sa pozrieme na niektoré kritériá kvality pri klasifikačných problémoch, prediskutujeme, čo je dôležité pri výbere metriky a čo sa môže pokaziť.

    Metriky v klasifikačných problémoch

    Ukážka užitočných vlastností sklearn a vizuálnej reprezentácie metrík, použijeme náš súbor údajov o obchvate zákazníkov telekomunikačného operátora, s ktorým sme sa stretli v prvom článku kurzu.

    Načítajme potrebné knižnice a pozrime sa na údaje

    Import pandov ako pd import matplotlib.pyplot ako plt z matplotlib.pylab import rc, plot import seaborn ako sns zo sklearn.preprocessing import Labelmblencoder, OneHotEncoder from sklearn.model_shearl.pro.pro zo sklearn.metrics import přesnosť_recall_curve, klasifikácia_ report z sklearn.model_selection import train_test_split df = pd.read_csv ("../../ data/ telecom_churn.csv")

    Df.head (5)

    Predspracovanie údajov

    # Urobme mapovanie binárnych stĺpcov # a kódujme stav pomocou fiktívneho kódovania (pre jednoduchosť je lepšie to nerobiť pre drevené modely) d = („Áno“: 1, „Nie“: 0) df [„Medzinárodný plán "] = df [" Medzinárodný plán "]. Mapa (d) df [" Plán hlasovej pošty "] = df [" Plán hlasovej pošty "]. Mapa (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 (encoded_state, columns = ["state" + str (i) for i in range (encoded_state.shape)]) df = pd.concat (, axis = 1)

    Presnosť, precíznosť a spätná väzba

    Predtým, ako prejdeme k samotným metrikám, je potrebné zaviesť dôležitý koncept na opis týchto metrík z hľadiska chýb klasifikácie - matica zmätku(chybová matica).
    Predpokladajme, že máme dve triedy a algoritmus, ktorý predpovedá príslušnosť každého objektu k jednej z tried, potom matica chýb klasifikácie bude vyzerať takto:

    Skutočne pozitívne (TP) Falošne pozitívne (FP)
    Falošne negatívne (FN) Skutočne negatívny (TN)

    toto je odpoveď algoritmu na objekt a

    Skutočný štítok triedy k tomuto objektu.
    Existujú teda dva typy klasifikačných chýb: falošne negatívna (FN) a falošne pozitívna (FP).

    Tréning algoritmu a konštrukcia matice chýb

    X = df.drop ("Churn", os = 1) y = df ["Churn"] # Rozdelenie vzorky na vlak a test, všetky metriky sa vyhodnotia v súbore údajov testu X_train, X_test, y_train, y_test = train_test_split ( X, y, stratify = y, test_size = 0,33, random_state = 42) # Trénujte natívnu logistickú regresiu lr = LogisticRegression (random_state = 42) lr.fit (X_train, y_train) # Pomocou funkcie vytvorte maticu chýb zo sklearnu dokumentácia def plot_confusion_matrix (cm, triedy, normalizovať = nepravda, názov = "(! LANG: matica zmätku)", 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="Matica zmätku") plt.savefig("conf_matrix.png") plt.show()!}

    Presnosť

    Intuitívna, zrejmá a takmer nepoužitá metrika je presnosť - percento správnych odpovedí algoritmu:

    Táto metrika je pri problémoch s nerovnakými triedami zbytočná a je ľahké ju ukázať na príklade.

    Povedzme, že chceme vyhodnotiť výkonnosť filtra nevyžiadanej pošty. Máme 100 e-mailov bez spamu, z ktorých 90 náš klasifikátor identifikoval správne (True Negative = 90, False Positive = 10) a 10 spamových e-mailov, z ktorých 5 klasifikátor tiež identifikoval správne (True Positive = 5, False Negative = 5) .
    Potom presnosť:

    Ak však všetky e-maily predpovedáme ako nevyžiadanú poštu, získame vyššiu presnosť:

    Náš model zároveň nemá žiadnu prediktívnu schopnosť, pretože sme pôvodne chceli identifikovať nevyžiadané správy. Aby sme to prekonali, pomôže nám prechod od spoločnej metriky pre všetky triedy k oddeleným ukazovateľom kvality tried.

    Presnosť, vyvolanie a F-meranie

    Aby sme vyhodnotili výkonnosť algoritmu v každej z tried osobitne, zavedieme metriky presnosti a pripomenutia.

    Presnosť možno interpretovať ako podiel objektov pomenovaných klasifikátorom ako kladných a súčasne skutočne pozitívnych. Pripomenutie ukazuje, aký podiel objektov v pozitívnej triede zo všetkých objektov v pozitívnej triede našiel algoritmus.

    Je to zavedenie presnosti, ktoré nám neumožňuje zapísať všetky objekty do jednej triedy, pretože v tomto prípade dosiahneme zvýšenie úrovne falošne pozitívnych výsledkov. Recall demonštruje schopnosť algoritmu všeobecne detekovať danú triedu a presnosť demonštruje schopnosť odlíšiť túto triedu od ostatných tried.

    Ako sme už uviedli, existujú dva typy klasifikačných chýb: falošne pozitívny a falošne negatívny. V štatistikách sa prvý typ chyby nazýva chyba typu I a druhý sa nazýva chyba typu II. V našom probléme určovania odmlčky predplatiteľa bude chybou prvého druhu prijatie verného predplatiteľa za odchádzajúceho, pretože naša nulová hypotéza je, že nikto z predplatiteľov neodchádza, a my túto hypotézu odmietame. V dôsledku toho chybou druhého druhu bude „preskočenie“ odchádzajúceho predplatiteľa a chybné prijatie nulovej hypotézy.

    Presnosť a spätné získavanie nezávisí, na rozdiel od presnosti, na pomere tried, a preto sú použiteľné v podmienkach nevyvážených vzoriek.
    V reálnej praxi je často úlohou nájsť optimálnu (pre zákazníka) rovnováhu medzi týmito dvoma metrikami. Klasickým príkladom je problém určovania striedania zákazníkov.
    Očividne nemôžeme nájsť zo všetkých odchádzajúci zákazníci a iba ich. Keď sme však identifikovali stratégiu a zdroje na udržanie zákazníkov, môžeme zvoliť potrebné prahy presnosti a spätného získavania. Môžete sa napríklad zamerať na udržanie iba zákazníkov s vysokými výnosmi alebo tých, u ktorých je väčšia pravdepodobnosť, že sa prihlásia, pretože sme obmedzení zdrojom call centra.

    Obvykle pri optimalizácii hyperparametrov algoritmu (napríklad v prípade iterácie cez mriežku) GridSearchCV), používa sa jedna metrika, ktorej zlepšenie očakávame na testovacej vzorke.
    Existuje niekoľko rôznych spôsobov, ako skombinovať presnosť a pripomenutie do súhrnnej miery kvality. F-mierka (všeobecne

    ) - presnosť a pripomenutie harmonickej:

    v tomto prípade určuje hmotnosť presnosti v metrike a pre

    toto je harmonický priemer (s multiplikátorom 2, takže v prípade presnosti = 1 a vyvolania = 1 máme

    )
    F-miera dosahuje svoje maximum, ak sú úplnosť a presnosť rovné jednej a blíži sa nule, ak sa jeden z argumentov blíži nule.
    Sklearn má praktickú funkciu _metrics.classification správa návratnosť, presnosť a F-miera pre každú z tried, ako aj počet inštancií pre každú triedu.

    Správa = report_ klasifikácie (y_test, lr.predict (X_test), target_names = ["Non-churned", "Churned"]) print (report)

    trieda presnosť odvolať skóre f1 podpora
    Nespálené 0.88 0.97 0.93 941
    Obrátené 0.60 0.25 0.35 159
    priemer / celkom 0.84 0.87 0.84 1100

    Tu je potrebné poznamenať, že v prípade problémov s nevyváženými triedami, ktoré prevládajú v reálnej praxi, je často potrebné uchýliť sa k technikám umelej úpravy súboru údajov na vyrovnanie pomeru tried. Existuje veľa z nich a nebudeme sa ich dotýkať, môžete sa pozrieť na niektoré metódy a vybrať si ten, ktorý vyhovuje vašej úlohe.

    AUC-ROC a AUC-PR

    Keď prevádzame skutočnú odpoveď algoritmu (spravidla pravdepodobnosť zaradenia do triedy, pozri SVM osobitne) na binárne označenie, musíme zvoliť nejaký prah, pri ktorom sa 0 stane 1. Prah rovnajúci sa 0,5 sa zdá byť prirodzený a blízky. , ale nie vždy sa to ukáže ako optimálne, napríklad v spomínanom nedostatku rovnováhy tried.

    Jedným zo spôsobov, ako hodnotiť model ako celok, bez viazania sa na konkrétny prah, je AUC -ROC (alebo ROC AUC) - oblasť ( A rea U nder C. urve) pod krivkou chýb ( R. eceiver O perating C. charakteristická krivka). Táto krivka je čiarou od (0,0) do (1,1) v súradniciach True Positive Rate (TPR) a False Positive Rate (FPR):

    TPR už poznáme, toto je úplnosť a FPR ukazuje, aký podiel objektov negatívnej triedy algoritmus predpovedal nesprávne. V ideálnom prípade, keď klasifikátor nerobí chyby (FPR = 0, TPR = 1), dostaneme plochu pod krivkou rovnú jednej, inak, keď klasifikátor náhodne vydáva pravdepodobnosti triedy, AUC-ROC bude mať tendenciu 0,5, pretože klasifikátor vydá rovnaké množstvo TP a FP.
    Každý bod v grafe zodpovedá voľbe určitého prahu. Plocha pod krivkou v tomto prípade ukazuje kvalitu algoritmu (čím viac, tým lepšie), okrem toho je dôležitá aj strmosť samotnej krivky - chceme maximalizovať TPR minimalizáciou FPR, čo znamená, že naša krivka by mala mať v ideálnom prípade tendenciu bod (0,1).

    Kód kresby krivky ROC

    Sns.set (font_scale = 1,5) sns.set_color_codes ("tlmené") plt.figure (figsize = (10, 8)) fpr, tpr, thresholds = roc_curve (y_test, lr.predict_proba (X_test) [:, 1], pos_label = 1) lw = 2 plt.plot (fpr, tpr, lw = lw, label = "ROC curve") plt.plot (,) plt.xlim () plt.ylim () plt.xlabel ("False Positive Rate ") plt.ylabel (" True Positive Rate ") plt.title (" ROC curve ") plt.savefig (" ROC.png ") plt.show ()

    Kritérium AUC-ROC je odolné voči nevyváženým triedam (spojler: bohužiaľ, ale nie všetko je také jednoznačné) a možno ho interpretovať ako pravdepodobnosť, že náhodne vybraný pozitívny predmet bude klasifikátorom zaradený vyššie (bude mať väčšiu pravdepodobnosť, že bude pozitívny) ako náhodne vybraný negatív predmet.

    Zvážte nasledujúci problém: z 1 milióna dokumentov musíme vybrať 100 relevantných dokumentov. Zvládli sme dva algoritmy:

    • Algoritmus 1 vráti 100 dokumentov, z ktorých 90 je relevantných. Preto
    • Algoritmus 2 vráti 2 000 dokumentov, z ktorých 90 je relevantných. Preto

    S najväčšou pravdepodobnosťou by sme vybrali prvý algoritmus, ktorý produkuje veľmi málo falošných pozitív v porovnaní s jeho konkurentom. Ale rozdiel vo falošne pozitívnej miere medzi týmito dvoma algoritmami extrémne malý - iba 0,0019. Je to dôsledok skutočnosti, že AUC-ROC meria podiel falošne pozitívnych vo vzťahu k skutočným negatívnym a v problémoch, kde pre nás druhá (väčšia) trieda nie je taká dôležitá, nemusí pri porovnávaní algoritmov poskytovať úplne adekvátny obraz. .

    Aby sme situáciu napravili, vráťme sa k úplnosti a presnosti:

    • Algoritmus 1
    • Algoritmus 2

    Tu je už značný rozdiel medzi týmito dvoma algoritmami - presnosť 0,855!

    Presnosť a spätné získavanie sa tiež používajú na zostrojenie krivky a podobne ako AUC-ROC nájdu oblasť pod ňou.

    Tu je možné poznamenať, že na malých množinách údajov môže byť oblasť pod krivkou PR príliš optimistická, pretože sa počíta pomocou lichobežníkovej metódy, ale zvyčajne je v takýchto úlohách dostatok údajov. Podrobnosti o vzťahu medzi AUC-ROC a AUC-PR nájdete tu.

    Logistická strata

    Funkcia logistickej straty je oddelená a je definovaná ako:

    toto je odpoveď algoritmu

    Ohm objekt,

    štítok skutočnej triedy na

    Ohm objekt, a

    veľkosť vzorky.

    Podrobnosti o matematickej interpretácii funkcie logistickej straty už boli napísané v rámci príspevku o lineárnych modeloch.
    Táto metrika sa zriedka vyskytuje v obchodných požiadavkách, ale často v úlohách na kaggle.
    Intuitívne je možné minimalizáciu lesku považovať za úlohu maximalizácie presnosti penalizáciou nesprávnych predpovedí. Je však potrebné poznamenať, že logloss je extrémne silne penalizovaný za dôveru klasifikátora v nesprávnu odpoveď.

    Uvažujme o príklade:

    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 with nejasná klasifikácia% f "% logloss_crutch (1, 0,5)) >> Logloss s neistou klasifikáciou 0,693147 print (" Logloss s dôvernou klasifikáciou a správnou odpoveďou% f "% logloss_crutch (1, 0,9)) >> Logloss s istou klasifikáciou a správnou odpoveďou 0,105361 tlač (" Logloss s dôvernou klasifikáciou a nesprávnou odpoveďou% f "% logloss_crutch (1, 0,1)) >> Logloss s dôvernou klasifikáciou a nesprávnou odpoveďou 2.302585

    Všimnite si, ako sa logloss dramaticky rozrástol s nesprávnou odpoveďou a sebavedomou klasifikáciou!
    V dôsledku toho chyba na jednom objekte môže mať za následok významné zníženie celkovej chyby vzorky. Takéto objekty sú často krajné hodnoty, ktoré je potrebné pamätať na to, aby boli filtrované alebo posudzované oddelene.
    Všetko zapadne na svoje miesto, ak nakreslíte loglogový graf:

    Je vidieť, že čím bližšie k nule je odpoveď algoritmu so základnou pravdou = 1, tým vyššia je chybová hodnota a strmšia krivka rastie.

    Zhrnutie:

    • V prípade viactriednej klasifikácie musíte starostlivo sledovať metriky každej z tried a riadiť sa logikou rozhodovania. úlohy namiesto optimalizácie metriky
    • V prípade nerovnakých tried je potrebné vybrať rovnováhu tried pre školenie a metriku, ktorá bude správne odrážať kvalitu klasifikácie
    • Výber metriky by sa mal vykonať so zameraním na predmetnú oblasť, predbežné spracovanie údajov a prípadne na segmentáciu (ako v prípade rozdelenia na bohatých a chudobných zákazníkov)

    užitočné odkazy

    1. Kurz Evgenyho Sokolova: Seminár o výbere modelov (k dispozícii sú informácie o metrikách regresných problémov)
    2. Problémy s AUC-ROC od A.G. Dyakonova
    3. Viac informácií o ďalších metrikách si môžete prečítať na stránke kaggle. Do popisu každej metriky bol pridaný odkaz na súťaž, kde bola použitá
    4. Prezentácia Bogdana Melnika aka ld86 o výcviku na nevyvážených vzorkách

    UDC 519,816

    S. V. SEMENIKHIN L. A. DENISOVÁ

    Štátna technická univerzita v Omsku

    SPÔSOB UČENIA STROJA

    VYCHÁDZA Z ÚPRAVY GENETICKÉHO ALGORITMU PRE YRSO METRICU

    Uvažuje sa o probléme poradia dokumentov na stránke s výsledkami vyhľadávania informácií a o otázkach poradia o strojovom učení. Navrhuje sa prístup na optimalizáciu funkcie hodnotenia pomocou metriky kvality NOCO na základe upraveného genetického algoritmu. Bol vykonaný výskum vyvinutých algoritmov (na testovacích kolekciách LETO ^ a bola ukázaná ich účinnosť pre strojové učenie hodnotenia.

    Kľúčové slová: získavanie informácií, hodnotenie strojového učenia, relevancia, optimalizácia, genetické algoritmy.

    1. Úvod. V moderných systémoch na získavanie informácií (ISS) sú objemy údajov prevádzkovaných systémom také veľké, že kľúčovou úlohou je zoradiť relevantné dokumenty v reakcii na vyhľadávací dotaz používateľa. V tejto fáze vývoja ISS je najväčší záujem o hodnotenie strojového učenia (ML). Existujúce prístupy k ML založené na numerických metódach (najmä gradientových metódach) alebo analytických výpočtoch majú množstvo nevýhod, ktoré výrazne ovplyvňujú kvalitu získavania informácií a čas potrebný na zoradenie relevantných dokumentov.

    Na začiatku výskumu boli zvážené prístupy k rebríčku strojového učenia, z ktorých väčšina používa metódu gradientového zostupu. V uvažovaných prácach sa ML obmedzuje na optimalizáciu metrík kvality vyhľadávania (SEQ), ale používajú sa iba metriky reprezentované súvislými funkciami. Toto obmedzenie často vedie k tomu, že v dôsledku optimalizácie má funkcia hodnotenia nižšie skóre pre mnoho dôležitých prijatých ukazovateľov (DCG, nDCG, Graded Mean Reciprocal Rank, atď.), Ktoré sú diskrétnymi funkciami. Príspevok navrhuje použitie genetických algoritmov (GA) vo vyučovaní hodnotenia na minimalizáciu Huberovej stratovej funkcie pomocou odborného posúdenia relevantnosti ako referenčných hodnôt. Bol tiež navrhnutý prístup k ML založený na optimalizácii diskrétnych metrík kvality získavania informácií.

    2. Vyjadrenie problému poradia strojového učenia. Vo väčšine moderných systémov na získavanie informácií je funkcia hodnotenia postavená na základe n jednoduchých funkcií hodnotenia (PRF) a môže byť zapísaná ako:

    kde SRF je jednoduchou hodnotiacou funkciou pre dokument d a dotaz q, WCi je hmotnostný koeficient jednoduchej hodnotiacej funkcie, n je počet PRF v systéme hodnotenia.

    V priebehu strojového učenia na hodnotenie bola použitá sada vyhľadávacích dokumentov B a dotazov O z testovacej zbierky LBTOY. Pre všetky deO požiadavky sa vytvorí pár s každým dokumentom deD. Pre každý takýto pár IRS určuje hodnoty relevancie, ktoré sa používajú na hodnotenie výsledkov vyhľadávania. Aby sa vyhodnotila kvalita poradia, systém vyžaduje referenčné hodnoty relevancie E pre každú dvojicu dotaz-dokument ^, e). Na tieto účely sa používajú relevantné odborné posúdenia.

    Na vykonanie štúdie bola použitá ISS, v ktorej je poradie urobené na základe N = 5 jednoduchých hodnotiacich funkcií SRFi (WC) l г = 1, N, ktoré tvoria vektorové kritérium optimality:

    kde WCе (WC) je vektor premenných parametrov; (ШС), (ЯБ) sú medzery parametrov a vektorových kritérií.

    Aplikácia genetických algoritmov na hodnotenie ML umožňuje maximalizovať diskrétne metriky kvality, ako je nDCG. Metrika nDCG pre hodnotenie dokumentov vo vyhľadávači je stanovená v súlade s výrazom:

    DCG @ n = X 2 ---

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

    kde stupeň (p) je priemerné skóre relevancie, ktoré experti udelili dokumentu umiestnenému na mieste p v zozname výsledkov, klasifikovaný stupeň; 1 / log2 (2 + p) - koeficient v závislosti od polohy dokumentu (prvé dokumenty majú väčšiu váhu).

    Potom bude normalizovaná verzia NDCG zapísaná ako

    N000 @ n = RSD @ n / g,

    kde r je normalizačný faktor, ktorý sa rovná maximálnej možnej hodnote 0С [chránené e -mailom] n pre daný dotaz (t.j. rovný OOO ideálneho poradia).

    Aby sa optimalizovala (maximalizovala) metrika OSS, objektívna funkcia (YM) bude zapísaná v nasledujúcom tvare

    3. Metriky kvality poradia výsledkov vyhľadávania. Pri hodnotení dokumentov vo výsledkoch vyhľadávania slúžia ako kritériá metriky kvality. Zo zoznamu všeobecne akceptovaných metrík na hodnotenie kvality ISS boli vybrané tri hlavné, ktoré hodnotia presnosť, relevantnosť a úplnosť získavania informácií.

    1. Kritérium presnosti získavania informácií

    kde a je počet nájdených relevantných dokumentov, b je počet dokumentov, ktoré boli omylom považované za relevantné.

    2. Kritérium Bpref, ktoré hodnotí relevanciu získavania informácií, sa používa na spracovanie úlohy s dokumentmi relevantnými pre R a vypočíta sa podľa vzorca

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

    Tu r označuje známy relevantný dokument a NonRelBefore (r) - počet známych irelevantných dokumentov umiestnených vyššie ako r (pri výpočte sa zohľadňuje iba prvé R odhadovaných irelevantných dokumentov z cyklu).

    3. Kritérium úplnosti výsledkov vyhľadávania

    r = a / (a+ c),

    kde a je počet nájdených relevantných dokumentov, c je počet nenalezených relevantných dokumentov.

    4. Testovanie zbierok. Pri úlohe strojového učenia si poradie vyžaduje sadu dokumentov a dotazov so zodpovedajúcim skóre relevancie určenú odborníkmi. Tieto údaje sa používajú na strojové učenie funkcie hodnotenia a na hodnotenie kvality.

    poradie výsledkov vyhľadávania systémom. V procese ML sa zbierky testov používajú ako tréningová sada, a preto majú významný vplyv na výsledky. Na výskum bol použitý testovací súbor dokumentov a požiadaviek LETOR. Táto zbierka sa používa na výskum získavania informácií spoločnosťou Microsoft Research. Tabuľka 1 ukazuje charakteristiku testovacích kolekcií LETOR.

    5. Modifikovaný genetický algoritmus. Aby sa na hodnotenie použili genetické algoritmy v strojovom učení, musí byť problém formulovaný tak, aby bolo riešenie kódované ako vektor (genotyp), kde každý gén môže byť bit, číslo alebo iný objekt. V tomto prípade je genotyp reprezentovaný vektorom váh pre zodpovedajúce faktory hodnotenia. Podmienkou zastavenia vykonávania genetického algoritmu je nájdenie optimálneho riešenia, vyčerpanie počtu generácií alebo čas vyhradený na evolúciu.

    Je potrebné poznamenať, že GA sú najúčinnejšie pri hľadaní oblasti globálneho extrému, ale môžu pracovať pomaly, keď je potrebné nájsť lokálne minimum v tejto oblasti. Navrhovaným spôsobom, ako sa vyhnúť tejto nevýhode, je vytvoriť modifikovaný genetický algoritmus (MGA), ktorý sa po nájdení globálnej optimálnej oblasti pomocou základného GA prepne na lokálny (vysokorýchlostný) optimalizačný algoritmus. Navrhovaná MGA je hybridná metóda založená na klasickom GA a Nelder - Meadovej metóde (simplexný algoritmus). Metóda Nelder - Mead, často používaný nelineárny optimalizačný algoritmus, je numerická metóda na nájdenie minima objektívnej funkcie vo viacrozmernom priestore. Hybridný algoritmus MGA navrhnutý v tomto príspevku prechádza na metódu Nelder - Mead po splnení podmienok na zastavenie GA. Blokový diagram algoritmu MGA je znázornený na obr. jeden.

    Pri vykonávaní výskumu bolo pri hľadaní oblasti globálneho extrému akceptované obmedzenie počtu výpočtov objektívnej funkcie (Nrf = 16 000) a podmienka prechodu na algoritmus lokálnej optimalizácie na základe metódy Nelder - Mead (po základný genetický algoritmus vykonal 75% operácií Nrf).

    6. Výsledky. Výsledkom výskumu vykonaného pomocou algoritmu strojového učenia

    stôl 1

    Počet dokumentov a dotazov v testovacích kolekciách

    Názov zbierky testov Názov podsystému Počet žiadostí Počet dokumentov

    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 Gov03hp 150 147606

    LETOR 3.0 Gov04td 75 74146

    LETOR 3.0 Gov04np 75 73834

    LETOR 3.0 Gov04hp 75 74409

    Ryža. 1. Blokový diagram hybridného algoritmu MVL na základe genetických algoritmov a metódy Nelder-Mead

    Na vyhodnotenie LTR-MGA sa získa vektor váh WC * pre funkciu hodnotenia. Ďalej, na základe údajov zo zbierky testov LETOYA, bola hodnotená kvalita hodnotenia, pre ktorú boli vypočítané metriky kvality. Diskrétna metrika kvality hodnotenia [chránené e -mailom] hodnotí kvalitu prvých n dokumentov reakcie systému. Všeobecne akceptovanými metrikami na hodnotenie kvality hodnotenia sú [chránené e -mailom], [chránené e -mailom] a [chránené e -mailom] Avšak pre podrobnejšie zváženie zmien v metrike v závislosti od hodnôt [chránené e -mailom] pre všetky n od 1 do 10. Na porovnanie účinnosti vyvinutého algoritmu s existujúcimi riešeniami bola vykonaná porovnávacia analýza s použitím hodnotiacich algoritmov uvedených v zbierkach LETOIA 3.0. Výsledky spustenia algoritmov pre testovacie zbierky TB2003 a TB2004 pre metriku NDCG sú znázornené na obr. 2. Výsledky ukazujú, že algoritmus LTR-MGA prekonáva testovacie algoritmy, pričom najvyššie hodnoty sú

    sú pre [chránené e -mailom](na úrovni prvého dokumentu). Nadradenosť algoritmu LTR-MGA je daná skutočnosťou, že na rozdiel od funkcií hodnotenia testov uvažovaných v experimentoch, v navrhovanom prístupe k optimalizácii funkcie hodnotenia je ako objektívna funkcia použitá metrika NDCG.

    Aby sa posúdila kvalita poradia pri použití navrhovaného algoritmu LTR-MGA, boli vypočítané hodnoty metrík kvality pre hodnotiace dokumenty vo výsledkoch vyhľadávania (obr. 3). Porovnanie výsledkov poradia (tabuľka 2) pri použití funkcie základného hodnotenia, základného algoritmu LTR-GA a modifikovaného algoritmu LTR-MGA naznačuje jeho výhodu.

    Štúdia navyše odhadovala čas potrebný na hodnotenie MO. Je to nevyhnutné na potvrdenie toho, že navrhovaná metóda LTR-MGA je v tomto ukazovateli lepšia ako prístup založený na použití tradičných

    Ryža. 2. Porovnanie algoritmov strojového učenia pre hodnotenie

    podľa metriky NDCG pre testovacie zbierky: vľavo - množina údajov Gov03td, vpravo - množina údajov Gov04td

    Ryža. 3. Vyhodnotenie metrík kvality poradia pre základný vzorec hodnotenia a algoritmy učenia LTR-GA a LTR-MGA

    Metriky hodnotenia pre rôzne poradové algoritmy strojového učenia

    tabuľka 2

    Metrika kvality hodnotenia Základná funkcia hodnotenia LTR-GA LTR-MGA Zvýšenie hodnoty metriky,%

    Presnosť 0,201 0,251 0,267 26,81

    [chránené e -mailom](prvých 5 dokumentov) 0,149 0,31 0,339 90,47

    [chránené e -mailom](prvých 10 dokumentov) 0,265 0,342 0,362 29,14

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

    Úplnosť 0,524 0,542 0,732 39,03

    * Najlepšie hodnoty pre príslušnú metriku sú zvýraznené sivou farbou

    genetický algoritmus onnogo (LTA-OL). Výsledky porovnania času stráveného vykonávaním algoritmov LTY-OL a LTY-MOL sú uvedené v tabuľke. 3.

    7. Záver. Vykonané štúdie teda ukázali, že pri použití navrhovaného prístupu sa hodnoty uvažovaných metrík hodnotenia v ISS zvyšujú (v priemere o 19,55% v porovnaní s algoritmom LTL-OL). To potvrdzuje, že LITA-MOL funguje správne a výrazne zlepšuje funkciu hodnotenia, inými slovami, úspešne rieši problém s optimalizáciou. Použitie upraveného algoritmu

    V dôsledku aplikácie metódy miestnej optimalizácie a zavedených obmedzení počtu výpočtov objektívnej funkcie sa doba strojového učenia znížila (v priemere o 17,71% v porovnaní s použitím tradičného genetického algoritmu LTIAOL).

    Vyvinutý algoritmus strojového učenia na hodnotenie LТY-MOL je možné použiť v ISS, ktoré používajú hodnotiaci model založený na kombinácii jednoduchých funkcií hodnotenia. Mali by sa však vziať do úvahy niektoré obmedzenia uplatňovania navrhovaného prístupu. Na základe

    Odhad času vykonania hodnotenia strojového učenia v závislosti od veľkosti tréningovej vzorky

    Tabuľka 3

    Veľkosť zbierky textových dokumentov

    Čas vykonania LTR-GA

    Runtime LTR-MGA

    Skrátenie času vykonania,%

    Priemerná hodnota

    * Najlepšie hodnoty pre zodpovedajúcu veľkosť testovacej kolekcie sú zvýraznené sivou farbou

    zo získaných výsledkov sa ukázalo, že po MO je najvyšší nárast pozorovaný v metrike kvality hodnotenia, ktorej hodnota bola braná ako objektívna funkcia. Ostatné metriky zároveň nemusia mať výrazné zlepšenie a v niektorých prípadoch dokonca zhoršujú ich hodnoty. Ako jeden z možných prístupov k odstráneniu tohto nedostatku sa navrhuje vyriešiť problém optimalizácie ako viackriteriálny: namiesto optimalizácie jednotne zlepšiť niekoľko hlavných metrík hodnotenia výsledkov vyhľadávania. Okrem toho sa v ďalších štúdiách plánuje vyvinúť metodiku na zostavenie objektívnej funkcie založenú na lineárnej konvolúcii hlavných metrík kvality hodnotenia s cieľom zlepšiť proces získavania informácií.

    Bibliografický zoznam

    1. Tie-Yan Liu. Naučte sa hodnotiť poradenstvo pri získavaní informácií // Základy časopisov a trendy v oblasti získavania informácií. Vol. 3, číslo 3. marca 2009. S. 225-331.

    2. Christopher J. C. Burges, Tal Shaked, Erin Renshaw. Learning to Rank using Gradient Descent // Proceeding ICML "05 Zborník z 22. medzinárodnej konferencie o strojovom učení. 2005. S. 89-96.

    3. Semenikhin, SV Skúmanie prístupov k strojovému učeniu na triedenie dokumentov vyhľadávacím systémom založeným na genetických algoritmoch / SV Semenikhin // Young Russia: advanced technologies in industry. - 2013. - Č. 2. - S. 82 - 85.

    4. Optimalizácia viacerých kritérií založená na genetických algoritmoch pri syntéze riadiacich systémov: monografia. / L. A. Denisová. - Omsk: Vydavateľstvo OmSTU, 2014.- 170 s. -ISBN 978-5-8149-1822-2.

    5. Denisova, L. A. Automatizácia parametrickej syntézy riadiaceho systému pomocou genetického algoritmu / L. A. Denisova, V. A. Meshcheryakov // Automatizácia v priemysle. - 2012. - Č. 7. - S. 34 - 38.

    6. Huber, Peter J. Robustný odhad parametra umiestnenia // Štatistiky. - 1964. - Č. 53. - S. 73-101.

    7. Semenikhin, S. V. Automatizácia získavania informácií na základe optimalizácie viacerých kritérií a genetických algoritmov / S. V. Semenikhin, L. A. Denisova // Dynamika systémov, mechanizmov a strojov. - 2014. - Č. 3. - S. 224 - 227.

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

    9. Ageev, MS Oficiálne metriky RMIP "2004 / MS Ageev, IE Kuralenok // II Ruský seminár o hodnotení metód získavania informácií (ROMIP 2004), Pushchino, 2004: tr .; Ed. S. Nekrest'yanova. - Petrohrad: Výskumný ústav chemický, Štátna univerzita v Petrohrade. - S. 142-150.

    10. J. A. Nelder, R. Mead, simplexová metóda na minimalizáciu funkcií, The Computer Journal 7 (1965). 308-313.

    Svyatoslav Vitalievich SEMENIKHIN, postgraduálny študent Katedry automatizovaného spracovania informácií a riadiacich systémov. Korešpondenčná adresa: [chránené e -mailom] DENISOVÁ Lyudmila Albertovna, doktorka technických vied, docentka Katedry automatizovaného spracovania informácií a riadiacich systémov. Korešpondenčná adresa: [chránené e -mailom]