Metrika kvality ve strojovém učení. Metriky v problémech strojového učení

Na prvky uvnitř každého seznamu. Částečné pořadí je obvykle určeno zadáním skóre pro každý prvek (například „relevantní“ nebo „není relevantní“; jsou možné více než dva stupně). Účelem modelu hodnocení je přiblížit a zobecnit nejlepším způsobem (v jistém smyslu) způsob hodnocení v tréninkové sadě pro nová data.

Ranking learning je stále poměrně mladá, rychle se rozvíjející oblast výzkumu, která se objevila v roce 2000 se vznikem zájmu v oblasti získávání informací o aplikaci metod strojového učení k hodnocení problémů.

Collegiate YouTube

  • 1 / 5

    Během tréninku hodnotícího modelu a během jeho provozu je každý pár dokumentu a dotazu přeložen do číselného vektoru hodnotících prvků (nazývaných také faktory hodnocení nebo signály) charakterizujících vlastnosti dokumentu, dotazu a jejich vztahu. Taková znamení lze rozdělit do tří skupin:

    Následuje několik příkladů hodnotících funkcí používaných v datové sadě LETOR, která je v oboru dobře známá:

    • Hodnoty opatření TF, TF-IDF, BM25 a jazykový model shody s požadavkem různých oblastí dokumentu (název, URL, hlavní text, text odkazu);
    • Délky a součty IDF zón dokumentů;
    • Pořadí dokumentů získané různými variantami algoritmů hodnocení odkazů, jako je PageRank a HITS.

    Hodnocení metrik kvality

    Existuje několik metrik, podle kterých je hodnocena výkonnost algoritmů řazení ve vzorku a porovnávána s hodnotiteli. Parametry hodnotícího modelu mají často tendenci být upravovány tak, aby maximalizovaly hodnotu jedné z těchto metrik.

    Příklady metrik:

    Klasifikace algoritmů

    Ve svém článku „Learning to Rank for Information Retrieval“ a projevech na tematických konferencích analyzoval Tai-Yang Liu z Microsoft Research Asia stávající metody řešení problému hodnocení výuky a navrhl jejich klasifikaci do tří přístupů v závislosti na použité vstupní reprezentaci. . datové a sankční funkce:

    Bodový přístup

    Poznámky

    1. Tie-Yan Liu (2009), Naučte se hodnotit za získávání informací, Foundations and Trends in Information Retrieval: Vol. 3: č. 3, s. 225-331, ISBN 978-1-60198-244-5, DOI 10.1561 / 1500000016... K dispozici jsou snímky z projevu T. Lewise na WWW 2009.

    O odlivu zákazníků telekomunikačního operátora.


    Načteme potřebné knihovny a podíváme se na data

    import pand jako pd import matplotlib.pyplot jako plt z matplotlib.pylab import rc, plot import seaborn jako sns ze sklearn.preprocessing import LabelmbleEncoder, OneHotEncoder from sklearn.model_selection import cross_val_score from sklearn.linear_model from sklearn.metrics import


    df.head (5)

    Předzpracování dat

    # Pojďme vytvořit mapování binárních sloupců # a kódovat stav pomocí fiktivního kódování (pro jednoduchost je lepší to nedělat u dřevěných modelů) d = („Ano“: 1, „Ne“: 0) df [„Mezinárodní plán "] = df [" Mezinárodní plán "]. Mapa (d) df [" Plán hlasové pošty "] = df [" Plán hlasové 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)

    Přesnost, přesnost a odvolání

    Než přejdeme k samotným metrikám, je nutné zavést důležitý koncept, jak tyto metriky popsat z hlediska chyb klasifikace - matice zmatků(chybová matice).
    Předpokládejme, že máme dvě třídy a algoritmus, který předpovídá příslušnost každého objektu k jedné z tříd, pak matice chyb klasifikace bude vypadat takto:


    Skutečně pozitivní (TP) Falešně pozitivní (FP)
    Falešně negativní (FN) True Negative (TN)

    Zde je odpověď algoritmu na objekt a je popisek skutečné třídy na tomto objektu.
    Existují tedy dva typy klasifikačních chyb: Falešně negativní (FN) a Falešně pozitivní (FP).


    Algoritmový trénink a konstrukce matice chyb

    X = df.drop ("Churn", osa = 1) y = df ["Churn"] # Rozdělte vzorek na vlak a test, všechny metriky budou vyhodnoceny v datové sadě 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 nativní logistickou regresi lr = LogisticRegression (random_state = 42) lr.fit (X_train, y_train) # Použijte funkci konstrukce matice chyb ze sklearn dokumentace def plot_confusion_matrix (cm, třídy, normalize = False, title = "(! LANG: matice zmatku", 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="Matice zmatku") plt.savefig("conf_matrix.png") plt.show()!}


    Přesnost

    Intuitivní, zřejmá a téměř nepoužívaná metrika je přesnost - procento správných odpovědí algoritmu:



    Tato metrika je k ničemu v problémech s nerovnými třídami a je snadné ji ukázat na příkladu.


    Řekněme, že chceme vyhodnotit výkon filtru nevyžádané pošty. Máme 100 e-mailů bez spamu, z nichž 90 náš klasifikátor identifikoval správně (True Negative = 90, False Positive = 10), a 10 spamových e-mailů, z nichž 5 klasifikátor také identifikoval správně (True Positive = 5, False Negative = pět ).
    Pak přesnost:



    Pokud však všechny e-maily předpovídáme jako nevyžádané, získáme vyšší přesnost:



    Náš model přitom nemá absolutně žádnou prediktivní schopnost, protože původně jsme chtěli identifikovat nevyžádané zprávy. Abychom to překonali, pomůže nám přechod ze společné metriky pro všechny třídy na oddělené ukazatele kvality tříd.

    Přesnost, odvolání a F-opatření

    Abychom posoudili výkonnost algoritmu pro každou z tříd samostatně, zavedeme metriky přesnosti a odvolání.




    Přesnost lze interpretovat jako podíl objektů pojmenovaných klasifikátorem jako kladný a zároveň skutečně kladný a připomenutí ukazuje, jaký podíl objektů kladné třídy ze všech objektů kladné třídy nalezený algoritmem.



    Je to zavedení přesnosti, které nám neumožňuje zapisovat všechny objekty do jedné třídy, protože v tomto případě získáme nárůst úrovně Falešně pozitivních. Recall ukazuje schopnost algoritmu obecně detekovat danou třídu a přesnost ukazuje schopnost odlišit tuto třídu od ostatních tříd.


    Jak jsme již poznamenali, existují dva typy klasifikačních chyb: Falešně pozitivní a Falešně negativní. Ve statistikách se první typ chyby nazývá chyba typu I a druhý se nazývá chyba typu II. V našem problému s určováním návštěvnosti předplatitelů bude chybou prvního druhu přijetí věrného předplatitele za odchozího, protože naše nulová hypotéza je, že žádný z předplatitelů neodejde, a my tuto hypotézu odmítáme. V důsledku toho bude chybou druhého druhu „přeskočení“ odchozího předplatitele a chybné přijetí nulové hypotézy.


    Přesnost a odvolání nezávisí, na rozdíl od přesnosti, na poměru tříd, a proto jsou použitelné v podmínkách nevyvážených vzorků.
    V reálné praxi je často úkolem najít optimální (pro zákazníka) rovnováhu mezi těmito dvěma metrikami. Klasickým příkladem je problém určování zákazu zákazníků.
    Očividně nemůžeme najít ze všech odcházejících zákazníků a pouze jim. Když jsme však identifikovali strategii a zdroje pro udržení zákazníků, můžeme vybrat nezbytné prahové hodnoty pro přesnost a odvolání. Můžete se například soustředit na udržení pouze vysoce výnosných zákazníků nebo těch, u nichž je větší pravděpodobnost, že odejdou, protože máme omezené zdroje call centra.


    Obvykle při optimalizaci hyperparametrů algoritmu (například v případě iterace přes mřížku GridSearchCV), je použita jedna metrika, jejíž zlepšení očekáváme na zkušebním vzorku.
    Existuje několik různých způsobů, jak kombinovat přesnost a vyvolání do souhrnného měřítka kvality. F -opatření (obecně) - přesnost harmonické a odvolání:



    V tomto případě určuje váhu přesnosti v metrice, a když je to harmonický průměr (s faktorem 2, takže v případě přesnosti = 1 a odvolání = 1 mít)
    F-opatření dosáhne svého maxima, když se úplnost a přesnost rovná jedné, a je blízká nule, pokud je jeden z argumentů blízký nule.
    Sklearn má praktickou funkci _metrics.classification zpráva, který vrací odvolání, přesnost a F-měřítko pro každou ze tříd, stejně jako počet instancí každé třídy.


    report = report_třídění (y_test, lr.predict (X_test), target_names = ["Non-churned", "Churned"]) print (report)
    třída přesnost odvolání skóre f1 Podpěra, podpora
    Non-churned 0.88 0.97 0.93 941
    Strhl 0.60 0.25 0.35 159
    průměr / celkem 0.84 0.87 0.84 1100

    Zde je třeba poznamenat, že v případě problémů s nevyrovnanými třídami, které převládají v reálné praxi, je často nutné uchýlit se k technikám umělé úpravy datové sady, aby se poměr tříd vyrovnal. Existuje mnoho z nich a nebudeme se jich dotýkat, můžete se podívat na některé metody a vybrat si tu, která vyhovuje vašemu úkolu.

    AUC-ROC a AUC-PR

    Při převodu skutečné odpovědi algoritmu (zpravidla pravděpodobnost příslušnosti ke třídě, viz SVM samostatně) na binární štítek musíme zvolit nějaký práh, při kterém se 0 stane 1. Prahová hodnota rovnající se 0,5 se zdá být přirozená a blízká , ale ne vždy se to ukáže jako optimální, například ve zmíněném nedostatku třídní rovnováhy.


    Jedním ze způsobů, jak hodnotit model jako celek, aniž by byl vázán na konkrétní prahovou hodnotu, je AUC -ROC (nebo ROC AUC) - oblast ( A rea U nder C urve) pod křivkou chyb ( R. eceiver Ó perating C charakteristická křivka). Tato křivka je přímka od (0,0) do (1,1) v souřadnicích True Positive Rate (TPR) a False Positive Rate (FPR):




    TPR již známe, toto je úplnost a FPR ukazuje, jaký podíl objektů negativní třídy algoritmus předpovídal nesprávně. V ideálním případě, kdy klasifikátor nedělá chyby (FPR = 0, TPR = 1), dostaneme plochu pod křivkou rovnou jedné; jinak, když klasifikátor náhodně vydává pravděpodobnosti třídy, AUC-ROC bude mít tendenci k 0,5, protože klasifikátor vydá stejný počet TP a FP.
    Každý bod v grafu odpovídá volbě určitého prahu. Plocha pod křivkou v tomto případě ukazuje kvalitu algoritmu (čím více, tím lépe), navíc je důležitá strmost samotné křivky - chceme maximalizovat TPR minimalizací FPR, což znamená, že naše křivka by měla mít v ideálním případě tendenci bod (0,1).


    Kód kresby křivky ROC

    sns.set (font_scale = 1,5) sns.set_color_codes ("ztlumené") 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 křivka ") plt.savefig (" ROC.png ") plt.show ()



    Kritérium AUC-ROC je odolné vůči nevyrovnaným třídám (upozornění na spoiler: bohužel, ne všechno je tak jednoznačné) a lze jej interpretovat jako pravděpodobnost, že náhodně vybraný pozitivní objekt bude zařazen klasifikátorem výše (bude mít vyšší pravděpodobnost, že bude pozitivní) než náhodně vybraný negativní objekt ...


    Zvažte následující problém: z 1 milionu dokumentů musíme vybrat 100 relevantních dokumentů. Zvládli jsme dva algoritmy:

    • Algoritmus 1 vrací 100 dokumentů, z nichž 90 je relevantních. Tím pádem,

    • Algoritmus 2 vrací 2 000 dokumentů, z nichž 90 je relevantních. Tím pádem,


    S největší pravděpodobností bychom zvolili první algoritmus, který produkuje velmi málo falešných pozitiv ve srovnání s jeho konkurentem. Ale rozdíl ve falešně pozitivní míře mezi těmito dvěma algoritmy velmi malý - pouze 0,0019. Je to důsledek skutečnosti, že AUC-ROC měří podíl falešně pozitivních ve srovnání s pravými negativními a v problémech, kde pro nás druhá (větší) třída není tak důležitá, nemusí při porovnávání algoritmů poskytovat zcela adekvátní obraz .


    Abychom situaci napravili, vraťme se k úplnosti a přesnosti:

    • Algoritmus 1

    • Algoritmus 2


    Zde je již znatelný významný rozdíl mezi těmito dvěma algoritmy - přesnost 0,855!


    Přesnost a odvolání se také používají k sestavení křivky a stejně jako AUC-ROC nacházejí oblast pod ní.



    Zde je možné poznamenat, že na malých datových sadách může být plocha pod křivkou PR příliš optimistická, protože se vypočítává pomocí lichoběžníkové metody, ale obvykle je v takových úlohách dostatek dat. Podrobnosti o vztahu mezi AUC-ROC a AUC-PR naleznete zde.

    Logistická ztráta

    Funkce logistické ztráty stojí samostatně, definovaná jako:



    zde je odpověď algoritmu na -th objektu, je popisek skutečné třídy na -th objektu a velikost vzorku.


    Podrobnosti o matematické interpretaci funkce logistické ztráty již byly napsány v rámci příspěvku o lineárních modelech.
    Tato metrika se zřídka objevuje v obchodních požadavcích, ale často v úkolech na kaggle.
    Intuitivně lze minimalizaci loglosu považovat za úkol maximalizace přesnosti penalizací nesprávných předpovědí. Je však třeba poznamenat, že logloss penalizuje extrémně silně za důvěru klasifikátora ve špatnou odpověď.


    Uvažujme příklad:


    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)) tisk („Logloss s nejistou klasifikací% f "% logloss_crutch (1, 0,5)) >> Logloss s nejistou klasifikací 0,693147 tisk (" Logloss s jistou klasifikací a správnou odpovědí% f "% logloss_crutch (1, 0,9)) >> Logloss s jistou klasifikací a správnou odpovědí 0,105361 tisk (" Logloss s jistou klasifikací a chybnou odpovědí% f "% logloss_crutch (1, 0,1)) >> Logloss s důvěryhodnou klasifikací a špatnou odpovědí 2.302585

    Všimněte si, jak se logloss dramaticky rozrostl s nesprávnou odpovědí a sebevědomou klasifikací!
    V důsledku toho může chyba u jednoho objektu vést k významnému zhoršení celkové chyby vzorku. Takové objekty jsou často extrémní hodnoty, které musí být zapamatovány, aby byly filtrovány nebo posuzovány samostatně.
    Všechno zapadne na místo, pokud nakreslíte loglogový graf:



    Je vidět, že čím blíže k nule je odezva algoritmu se základní pravdou = 1, tím vyšší je chybová hodnota a strmější křivka roste.

    Pojďme si to shrnout:

    • V případě více třídní klasifikace musíte pečlivě sledovat metriky každé z tříd a řídit se logikou rozhodování úkoly než optimalizovat metriku
    • V případě nerovných tříd je nutné vybrat rovnováhu tříd pro školení a metriku, která bude správně odrážet kvalitu klasifikace
    • a madrugado za pomoc s tímto článkem.

    Tato kapitola představuje oblíbené metody pro hodnocení kvality klasifikačního modelu, které jsou mimo jiné použity i v dalších pracích na toto téma. Je uveden jejich popis a odůvodnění metrik použitých pro toto hodnocení.

    Metriky hodnocení kvality

    Plná přesnost

    Tato metrika je jednou z nejjednodušších a zároveň univerzálních metrik pro hodnocení výkonu klasifikačních algoritmů. Hodnota tohoto koeficientu se vypočítá jako podíl správně klasifikovaných objektů z celkového počtu objektů ve vzorku. Tato metrika je populární díky své jednoduchosti a možnosti rozšíření na libovolný počet tříd. Hlavní nevýhodou této metriky je, že všem dokumentům přiřazuje stejnou váhu, což může být nesprávné v případě silného posunutí dokumentů v rámci školení nastaveného na jednu nebo více tříd. Tato metrika může mít vysokou hodnotu, ale klasifikátor ve stejné třídě může vykazovat extrémně nízkou kvalitu práce. Metrika to zároveň nijak nesignalizuje.

    Přesnost, úplnost a F-opatření

    Metriky, jako je přesnost a vyvolání, byly poprvé široce používány při posuzování výkonnosti systémů řešících problémy s vyhledáváním informací. Přesnost systému v rámci jedné třídy je podíl objektů, které skutečně patří do určité třídy, vzhledem ke všem objektům přiřazeným systémem do této třídy. Úplnost je vyjádřena jako podíl objektů nalezených klasifikátorem patřícím do třídy vzhledem ke všem objektům této třídy. Tabulka 4 je kontingenční tabulka samostatné třídy, kde TP (true positive) je skutečně pozitivní rozhodnutí, TN (true positive) je skutečně negativní rozhodnutí, FP (false positive) je falešně pozitivní rozhodnutí a FN (false positive) ) je falešné. -záporné rozhodnutí.

    Tabulka 1 - Tabulka nepředvídatelnosti třídy objektů

    Přesnost a úplnost se tedy vypočítá jako:

    F-opatření kombinuje informace o přesnosti a úplnosti vyhodnoceného algoritmu. Vypočítává se jako harmonický průměr ukazatelů přesnosti a úplnosti:

    Vzhledem k tomu, že F-měřítko se vypočítává samostatně pro každou třídu, je vhodné jej použít pro vyhledávání a analýzu konkrétních chyb algoritmu, pro vyhodnocení klasifikace s několika třídami. Navíc v případě velkého počtu tříd je zapotřebí charakteristika, která by agregovala úplnost a přesnost pro všechny třídy a charakterizovala celkové chování systému. V této práci jsou pro tento účel použity následující agregované hodnoty: přesnost makra, která se vypočítá jako aritmetický průměr přesnosti pro všechny třídy, vyvolání makra, které se vypočítá jako aritmetický průměr úplnosti pro všechny třídy, a makro F- opatření (Makro F-skóre), což je harmonický průměr mezi nimi.

    Křížová validace

    Křížová validace je jednou z nejběžnějších metod provádění úplného testování a hodnocení výkonu různých algoritmů strojového učení. U nezávislého vzorku tato metoda umožňuje získat nezaujatý odhad pravděpodobnosti chyby, na rozdíl od průměrné chyby na trénovaném vzorku, což může být zkreslený odhad pravděpodobnosti chyby v důsledku přeplnění algoritmu. Další výhodou tohoto postupu je schopnost získat odhad pravděpodobnosti chyby algoritmu v nepřítomnosti speciálně navrženého kontrolního vzorku pro testování.

    Předpokládejme, že jde o sadu popisů funkcí objektů, na kterých je určen konečný vzorek případů použití, kde je konečná sada tříd. Je zadáno mapování, které přiřazuje algoritmus libovolnému výběru případů použití. Potom se odhadne kvalita algoritmu pro libovolný vzorek precedentů pomocí funkce kvality:

    kde je nějaká nezáporná funkce, která vrací hodnotu chyby algoritmu se štítkem správné třídy.

    Dobrý den, Habr!

    V úlohách strojového učení se metriky používají k hodnocení kvality modelů a porovnávání různých algoritmů a jejich výběr a analýza jsou nepostradatelnou součástí práce datasatanisty.

    V tomto článku se podíváme na některá kritéria kvality v klasifikačních problémech, probereme, co je důležité při výběru metriky a co se může pokazit.

    Metriky v klasifikačních problémech

    Ukázat užitečné funkce sklearn a vizuální reprezentace metrik, použijeme náš datový soubor na víru zákazníků telekomunikačního operátora, se kterým jsme se setkali v prvním článku kurzu.

    Načteme potřebné knihovny a podíváme se na data

    Import pand jako pd import matplotlib.pyplot jako plt z matplotlib.pylab import rc, plot import seaborn jako sns ze sklearn.preprocessing import Labelmblencoder, OneHotEncoder from sklearn.model_selection import from sklearn.linear_modelress from sklearn.metrics import

    Df.head (5)

    Předzpracování dat

    # Pojďme vytvořit mapování binárních sloupců # a kódovat stav pomocí fiktivního kódování (pro jednoduchost je lepší to nedělat u dřevěných modelů) d = („Ano“: 1, „Ne“: 0) df [„Mezinárodní plán "] = df [" Mezinárodní plán "]. Mapa (d) df [" Plán hlasové pošty "] = df [" Plán hlasové 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)

    Přesnost, přesnost a odvolání

    Než přejdeme k samotným metrikám, je nutné představit důležitý koncept, jak tyto metriky popsat z hlediska chyb klasifikace - matice zmatků(chybová matice).
    Předpokládejme, že máme dvě třídy a algoritmus, který předpovídá příslušnost každého objektu k jedné z tříd, pak matice chyb klasifikace bude vypadat takto:

    Skutečně pozitivní (TP) Falešně pozitivní (FP)
    Falešně negativní (FN) True Negative (TN)

    toto je odpověď algoritmu na objekt a

    Popisek skutečné třídy u tohoto objektu.
    Existují tedy dva typy klasifikačních chyb: Falešně negativní (FN) a Falešně pozitivní (FP).

    Algoritmový trénink a konstrukce matice chyb

    X = df.drop ("Churn", osa = 1) y = df ["Churn"] # Rozdělte vzorek na vlak a test, všechny metriky budou vyhodnoceny v datové sadě 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 nativní logistickou regresi lr = LogisticRegression (random_state = 42) lr.fit (X_train, y_train) # Pomocí funkce sestavte chybovou matici ze sklearn dokumentace def plot_confusion_matrix (cm, třídy, normalize = False, title = "(! LANG: matice zmatku", 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="Matice zmatku") plt.savefig("conf_matrix.png") plt.show()!}

    Přesnost

    Intuitivní, zřejmá a téměř nepoužívaná metrika je přesnost - procento správných odpovědí algoritmu:

    Tato metrika je k ničemu v problémech s nerovnými třídami a je snadné ji ukázat na příkladu.

    Řekněme, že chceme vyhodnotit výkon filtru nevyžádané pošty. Máme 100 e-mailů bez spamu, z nichž 90 náš klasifikátor identifikoval správně (True Negative = 90, False Positive = 10) a 10 spamových e-mailů, z nichž 5 klasifikátor také identifikoval správně (True Positive = 5, False Negative = 5) .
    Pak přesnost:

    Pokud však všechny e-maily předpovídáme jako nevyžádané, získáme vyšší přesnost:

    Náš model přitom nemá vůbec žádnou prediktivní schopnost, protože původně jsme chtěli identifikovat nevyžádané zprávy. Abychom to překonali, pomůže nám přechod ze společné metriky pro všechny třídy na oddělené ukazatele kvality tříd.

    Přesnost, odvolání a F-opatření

    Abychom vyhodnotili výkonnost algoritmu pro každou z tříd samostatně, zavedeme metriky přesnosti a odvolání.

    Přesnost lze interpretovat jako podíl objektů pojmenovaných klasifikátorem jako kladný a zároveň skutečně kladný a připomenutí ukazuje, jaký podíl objektů kladné třídy ze všech objektů kladné třídy nalezený algoritmem.

    Je to zavedení přesnosti, které nám neumožňuje zapisovat všechny objekty do jedné třídy, protože v tomto případě získáme nárůst úrovně Falešně pozitivních. Recall ukazuje schopnost algoritmu obecně detekovat danou třídu a přesnost ukazuje schopnost odlišit tuto třídu od ostatních tříd.

    Jak jsme již poznamenali, existují dva typy klasifikačních chyb: Falešně pozitivní a Falešně negativní. Ve statistikách se první typ chyby nazývá chyba typu I a druhý se nazývá chyba typu II. V našem problému s určováním churn předplatitele bude chybou prvního druhu přijetí věrného předplatitele za odchozího, protože naše nulová hypotéza je, že žádný z předplatitelů neodchází, a my tuto hypotézu odmítáme. V důsledku toho bude chybou druhého druhu „přeskočení“ odchozího předplatitele a chybné přijetí nulové hypotézy.

    Přesnost a odvolání nezávisí, na rozdíl od přesnosti, na poměru tříd, a proto jsou použitelné v podmínkách nevyvážených vzorků.
    V reálné praxi je často úkolem najít optimální (pro zákazníka) rovnováhu mezi těmito dvěma metrikami. Klasickým příkladem je problém určování zákazu zákazníků.
    Očividně nemůžeme najít ze všech odcházejících zákazníků a pouze jim. Když jsme však identifikovali strategii a zdroje pro udržení zákazníků, můžeme vybrat potřebné prahové hodnoty přesnosti a odvolání. Můžete se například soustředit na udržení pouze zákazníků s vysokými výnosy nebo těch, u nichž je větší pravděpodobnost, že se budou hlásit, protože jsme omezeni prostředkem call centra.

    Obvykle při optimalizaci hyperparametrů algoritmu (například v případě iterace přes mřížku GridSearchCV), je použita jedna metrika, jejíž zlepšení očekáváme na zkušebním vzorku.
    Existuje několik různých způsobů, jak kombinovat přesnost a vyvolání do souhrnného měřítka kvality. F-opatření (obecně

    ) - přesnost harmonické a odvolání:

    v tomto případě určuje váhu přesnosti v metrice a pro

    toto je harmonický průměr (s multiplikátorem 2, takže v případě přesnosti = 1 a odvolání = 1 máme

    )
    F-opatření dosáhne svého maxima, když se úplnost a přesnost rovná jedné a je blízká nule, pokud je jeden z argumentů blízký nule.
    Sklearn má praktickou funkci _metrics.classification zpráva vrací odvolání, přesnost a F-měřítko pro každou ze tříd, stejně jako počet instancí každé třídy.

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

    třída přesnost odvolání skóre f1 Podpěra, podpora
    Non-churned 0.88 0.97 0.93 941
    Strhl 0.60 0.25 0.35 159
    průměr / celkem 0.84 0.87 0.84 1100

    Zde je třeba poznamenat, že v případě problémů s nevyrovnanými třídami, které převládají v reálné praxi, je často nutné uchýlit se k technikám umělé úpravy datové sady, aby se poměr tříd vyrovnal. Je jich mnoho a nebudeme se jich dotýkat, můžete se podívat na některé metody a vybrat si tu, která vyhovuje vašemu úkolu.

    AUC-ROC a AUC-PR

    Při převodu skutečné odpovědi algoritmu (zpravidla pravděpodobnost příslušnosti ke třídě, viz SVM samostatně) na binární štítek musíme zvolit nějaký práh, při kterém se 0 stane 1. Prahová hodnota rovnající se 0,5 se zdá být přirozená a blízká , ale ne vždy se to ukáže jako optimální, například ve zmíněném nedostatku třídní rovnováhy.

    Jedním ze způsobů, jak hodnotit model jako celek, aniž by byl vázán na konkrétní prahovou hodnotu, je AUC -ROC (nebo ROC AUC) - oblast ( A rea U nder C urve) pod křivkou chyb ( R. eceiver Ó perating C charakteristická křivka). Tato křivka je přímka od (0,0) do (1,1) v souřadnicích True Positive Rate (TPR) a False Positive Rate (FPR):

    TPR již známe, toto je úplnost a FPR ukazuje, jaký podíl objektů negativní třídy algoritmus předpovídal nesprávně. V ideálním případě, když klasifikátor nedělá žádné chyby (FPR = 0, TPR = 1), dostaneme plochu pod křivkou rovnou jedné, jinak, když klasifikátor náhodně vydává pravděpodobnosti třídy, AUC-ROC bude mít tendenci 0,5, protože klasifikátor vydá stejné množství TP a FP.
    Každý bod v grafu odpovídá volbě určitého prahu. Plocha pod křivkou v tomto případě ukazuje kvalitu algoritmu (čím více, tím lépe), navíc je důležitá strmost samotné křivky - chceme maximalizovat TPR minimalizací FPR, což znamená, že naše křivka by měla mít v ideálním případě tendenci bod (0,1).

    Kód kresby křivky ROC

    Sns.set (font_scale = 1,5) sns.set_color_codes ("ztlumené") 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 křivka ") plt.savefig (" ROC.png ") plt.show ()

    Kritérium AUC-ROC je odolné vůči nevyrovnaným třídám (spoiler: bohužel, ale ne všechno je tak jednoznačné) a lze jej interpretovat jako pravděpodobnost, že náhodně vybraný pozitivní objekt bude zařazen klasifikátorem výše (bude mít vyšší pravděpodobnost, že bude pozitivní) než náhodně vybraný negativní objekt.

    Zvažte následující problém: z 1 milionu dokumentů musíme vybrat 100 relevantních dokumentů. Zvládli jsme dva algoritmy:

    • Algoritmus 1 vrací 100 dokumentů, z nichž 90 je relevantních. Tím pádem,
    • Algoritmus 2 vrací 2 000 dokumentů, z nichž 90 je relevantních. Tím pádem,

    S největší pravděpodobností bychom zvolili první algoritmus, který produkuje velmi málo falešných pozitiv ve srovnání s jeho konkurentem. Ale rozdíl ve falešně pozitivní míře mezi těmito dvěma algoritmy velmi malý - pouze 0,0019. Je to důsledek skutečnosti, že AUC-ROC měří podíl falešně pozitivních ve srovnání s pravými negativními a v problémech, kde pro nás druhá (větší) třída není tak důležitá, nemusí při porovnávání algoritmů poskytovat zcela adekvátní obraz .

    Abychom situaci napravili, vraťme se k úplnosti a přesnosti:

    • Algoritmus 1
    • Algoritmus 2

    Zde je již znatelný významný rozdíl mezi těmito dvěma algoritmy - přesnost 0,855!

    Přesnost a odvolání se také používají k sestavení křivky a stejně jako AUC-ROC nacházejí oblast pod ní.

    Zde je možné poznamenat, že na malých datových sadách může být plocha pod křivkou PR příliš optimistická, protože se vypočítává pomocí lichoběžníkové metody, ale obvykle je v takových úlohách dostatek dat. Podrobnosti o vztahu mezi AUC-ROC a AUC-PR naleznete zde.

    Logistická ztráta

    Funkce logistické ztráty stojí samostatně, definovaná jako:

    toto je odpověď algoritmu

    Ohm objekt,

    štítek skutečné třídy na

    Ohm objekt, a

    velikost vzorku.

    Podrobnosti o matematické interpretaci funkce logistické ztráty již byly napsány v rámci příspěvku o lineárních modelech.
    Tato metrika se zřídka objevuje v obchodních požadavcích, ale často v úkolech na kaggle.
    Intuitivně lze minimalizaci logloss považovat za úkol maximalizace přesnosti penalizací chybných předpovědí. Je však třeba poznamenat, že logloss penalizuje extrémně silně za důvěru klasifikátora ve špatnou odpověď.

    Uvažujme příklad:

    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)) tisk ("Logloss s nejistou klasifikací% f "% logloss_crutch (1, 0,5)) >> Logloss s nejistou klasifikací 0,693147 tisk (" Logloss s jistou klasifikací a správnou odpovědí% f "% logloss_crutch (1, 0,9)) >> Logloss s jistou klasifikací a správnou odpovědí 0,105361 tisk (" Logloss s jistou klasifikací a špatnou odpovědí% f "% logloss_crutch (1, 0,1)) >> Logloss s důvěryhodnou klasifikací a špatnou odpovědí 2.302585

    Všimněte si, jak se logloss dramaticky rozrostl s nesprávnou odpovědí a sebevědomou klasifikací!
    V důsledku toho může chyba u jednoho objektu vést k významnému zhoršení celkové chyby vzorku. Takové objekty jsou často extrémní hodnoty, které musí být zapamatovány, aby byly filtrovány nebo posuzovány samostatně.
    Všechno zapadne na místo, pokud nakreslíte loglogový graf:

    Je vidět, že čím blíže k nule je odezva algoritmu se základní pravdou = 1, tím vyšší je chybová hodnota a strmější křivka roste.

    Shrnutí:

    • V případě více třídní klasifikace musíte pečlivě sledovat metriky každé z tříd a řídit se logikou rozhodování úkoly než optimalizovat metriku
    • V případě nerovných tříd je nutné vybrat rovnováhu tříd pro školení a metriku, která bude správně odrážet kvalitu klasifikace
    • Výběr metriky by měl být proveden se zaměřením na předmětnou oblast, předzpracováním dat a případně segmentací (jako v případě rozdělení na bohaté a chudé zákazníky)

    užitečné odkazy

    1. Kurz Evgeny Sokolov: Seminář o výběru modelů (k dispozici jsou informace o metrikách regresních problémů)
    2. Problémy na AUC-ROC od A.G. Dyakonova
    3. Více o dalších metrikách si můžete přečíst na kaggle. Do popisu každé metriky byl přidán odkaz na soutěž, kde byla použita
    4. Prezentace Bogdana Melnika aka ld86 o školení na nevyvážených vzorcích

    UDC 519,816

    S. V. SEMENIKHIN L. A. DENISOVÁ

    Státní technická univerzita v Omsku

    ZPŮSOB UČENÍ STROJE

    NA ZÁKLADĚ ZMĚNĚNÉ GENETICKÉ ALGORITHMY PRO METRIKU YRSO

    Uvažuje se o problému hodnocení dokumentů na stránce s výsledky vyhledávání informací a o otázkách hodnocení strojového učení. Navrhuje se přístup k optimalizaci funkce hodnocení pomocí metriky kvality NOCO na základě upraveného genetického algoritmu. Byl proveden výzkum vyvinutých algoritmů (na testovacích kolekcích LETO ^ a byla ukázána jejich účinnost pro strojové učení hodnocení.

    Klíčová slova: získávání informací, hodnocení strojového učení, relevance, optimalizace, genetické algoritmy.

    1. Úvod. V moderních informačních vyhledávacích systémech (ISS) jsou objemy dat provozovaných systémem tak velké, že klíčovým úkolem je seřazení relevantních dokumentů v reakci na vyhledávací dotaz uživatele. V této fázi vývoje ISS je největší zájem o hodnocení strojového učení (ML). Stávající přístupy k ML založené na numerických metodách (zejména gradientových metodách) nebo na analytických výpočtech mají řadu nevýhod, které významně ovlivňují kvalitu vyhledávání informací a čas potřebný k seřazení příslušných dokumentů.

    Na začátku výzkumu byly zvažovány seznamové přístupy k hodnocení strojového učení, z nichž většina používá metodu sestupu gradientu. V uvažovaných pracích se ML redukuje na optimalizaci metrik kvality vyhledávání (SEQ), ale používají se pouze metriky reprezentované spojitými funkcemi. Toto omezení často vede k tomu, že v důsledku optimalizace má funkce hodnocení nižší skóre u mnoha důležitých přijímaných indikátorů (DCG, nDCG, Graded Mean Reciprocal Rank atd.), Což jsou diskrétní funkce. Příspěvek navrhuje použití genetických algoritmů (GA) ve výuce hodnocení, aby se minimalizovala Huberova ztráta pomocí expertních hodnocení relevance jako referenčních hodnot. Byl také navržen přístup k ML založený na optimalizaci diskrétních metrik kvality získávání informací.

    2. Vyjádření problému hodnocení strojového učení. Ve většině moderních systémů pro získávání informací je funkce hodnocení postavena na základě n jednoduchých funkcí hodnocení (PRF) a lze ji zapsat jako:

    kde SRF ¡je ¡ta jednoduchá hodnotící funkce pro dokument d a dotaz q, WCi je váhový koeficient ¡té jednoduché hodnotící funkce, n je počet PRF v hodnotícím systému.

    V průběhu strojového učení pro hodnocení byla použita sada vyhledávacích dokumentů B a dotazů O z testovací kolekce LBTOY. Pro všechny deO požadavky je s každým deD dokumentem vytvořen pár. Pro každý takový pár určuje IRS hodnoty relevance, které se používají k hodnocení výsledků vyhledávání. Aby bylo možné vyhodnotit kvalitu hodnocení, systém vyžaduje referenční hodnoty relevance E pro každý pár dotazů na dokumenty ^, e). Pro tyto účely se používají relevantní odborná posouzení.

    K provedení studie byla použita ISS, ve které je hodnocení provedeno na základě N = 5 jednoduchých hodnotících funkcí SRFi (WC) l г = 1, N, které tvoří vektorové kritérium optimality:

    kde WCе (WC) je vektor proměnných parametrů; (ШС), (ЯБ) jsou mezery parametrů a vektorových kritérií.

    Aplikace genetických algoritmů pro hodnocení ML umožňuje maximalizovat diskrétní metriky kvality, jako je nDCG. Metrika nDCG pro hodnocení dokumentů ve vyhledávači je určena v souladu s výrazem:

    DCG @ n = X 2 ---

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

    kde známka (p) je průměrné skóre relevance, které odborníci udělili dokumentu umístěnému na pozici p v seznamu výsledků, hodnocení; 1 / log2 (2 + p) - koeficient v závislosti na poloze dokumentu (první dokumenty mají větší váhu).

    Poté bude normalizovaná verze NDCG zapsána jako

    N000 @ n = RSD @ n / g,

    kde r je normalizační faktor, který se rovná maximální možné hodnotě 0С [chráněno emailem] n pro daný dotaz (tj. rovný OOO ideálního hodnocení).

    Za účelem optimalizace (maximalizace) metriky OSS bude objektivní funkce (YM) zapsána v následujícím tvaru

    3. Metriky kvality hodnocení výsledků vyhledávání. Při hodnocení dokumentů ve výsledcích vyhledávání slouží jako kritéria metriky kvality. Ze seznamu obecně přijímaných metrik pro hodnocení kvality ISS byly vybrány tři hlavní, které hodnotí přesnost, relevanci a úplnost získávání informací.

    1. Kritérium přesnosti vyhledávání informací

    kde a je počet nalezených relevantních dokumentů, b je počet dokumentů zaměněných za relevantní.

    2. Kritérium Bpref, které hodnotí relevanci získávání informací, se používá ke zpracování úlohy s dokumenty relevantními pro R a je vypočítáno podle vzorce

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

    Zde r označuje známý relevantní dokument a NonRelBefore (r) - počet známých irelevantních dokumentů umístěných výše než r (při výpočtu se bere v úvahu pouze první R odhadovaných nerelevantních dokumentů z cyklu).

    3. Kritérium úplnosti výsledků vyhledávání

    r = a / (a+ c),

    kde a je počet nalezených relevantních dokumentů, c je počet nenalezených relevantních dokumentů.

    4. Testování sbírek. V úkolu strojového učení vyžaduje hodnocení sadu dokumentů a dotazů s odpovídajícím skóre relevance určenou odborníky. Tato data se používají pro strojové učení funkce hodnocení a také pro hodnocení kvality.

    hodnocení výsledků vyhledávání systémem. V procesu ML se sbírky testů používají jako tréninková sada, a proto mají významný dopad na výsledky. K výzkumu byla použita testovací sbírka dokumentů a požadavků LETOR. Tato kolekce slouží k výzkumu získávání informací společností Microsoft Research. Stůl 1 ukazuje charakteristiky testovacích sbírek LETOR.

    5. Modifikovaný genetický algoritmus. Aby bylo možné použít genetické algoritmy ve strojovém učení k hodnocení, musí být problém formulován tak, aby bylo řešení zakódováno jako vektor (genotyp), kde každý gen může být bit, číslo nebo jiný objekt. V tomto případě je genotyp reprezentován vektorem vah pro odpovídající faktory pořadí. Podmínkou zastavení provádění genetického algoritmu je nalezení optimálního řešení, vyčerpání počtu generací nebo čas vyhrazený pro evoluci.

    Je třeba poznamenat, že GA jsou nejúčinnější při hledání oblasti globálního extrému, ale mohou pracovat pomalu, když je nutné v této oblasti najít lokální minimum. Navrhovaný způsob, jak se vyhnout této nevýhodě, je vytvořit upravený genetický algoritmus (MGA), který se po nalezení globální optimální oblasti pomocí základního GA přepne na místní (vysokorychlostní) optimalizační algoritmus. Navrhovaná MGA je hybridní metoda založená na klasické GA a metodě Nelder - Mead (simplexový algoritmus). Metoda Nelder - Mead, často používaný nelineární optimalizační algoritmus, je numerická metoda pro nalezení minima objektivní funkce ve vícerozměrném prostoru. Hybridní algoritmus MGA navržený v tomto článku přechází na metodu Nelder - Mead poté, co jsou splněny podmínky pro zastavení GA. Blokové schéma algoritmu MGA je znázorněno na obr. jeden.

    Při provádění výzkumu bylo při hledání oblasti globálního extrému přijato omezení počtu výpočtů objektivní funkce (Nrf = 16 000) a podmínka přechodu na lokální optimalizační algoritmus založený na metodě Nelder - Mead (po základní genetický algoritmus provedl 75% operací Nrf).

    6. Výsledky. Výsledkem výzkumu provedeného pomocí algoritmu strojového učení

    stůl 1

    Počet dokumentů a dotazů v testovacích kolekcích

    Název kolekce testů Název subsystému Počet požadavků Počet dokumentů

    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

    Rýže. 1. Blokové schéma hybridního algoritmu MVL na základě genetických algoritmů a metody Nelder-Mead

    Pro hodnocení LTR-MGA se získá vektor WC * hmotností pro funkci hodnocení. Dále byla na základě údajů ze sbírky testů LETOYA hodnocena kvalita hodnocení, pro kterou byla vypočítána metrika kvality. Diskrétní metrika kvality hodnocení [chráněno emailem] hodnotí kvalitu prvních n dokumentů reakce systému. Obecně přijímané metriky pro hodnocení kvality hodnocení jsou [chráněno emailem], [chráněno emailem] a [chráněno emailem] Pro podrobnější zvážení změn v metrice v závislosti na hodnotách [chráněno emailem] pro všechna n od 1 do 10. Pro srovnání účinnosti vyvinutého algoritmu s existujícími řešeními byla provedena srovnávací analýza s použitím hodnotících algoritmů poskytovaných ve sbírkách LETOIA 3.0. Výsledky spuštění algoritmů pro testovací kolekce TB2003 a TB2004 pro metriku NDCG jsou uvedeny na Obr. 2. Výsledky ukazují, že algoritmus LTR-MGA překonává testovací algoritmy, přičemž nejvyšší hodnoty jsou

    jsou pro [chráněno emailem](na úrovni prvního dokumentu). Nadřazenost algoritmu LTR-MGA je dána skutečností, že na rozdíl od funkcí hodnocení testů uvažovaných v experimentech, v navrhovaném přístupu k optimalizaci funkce hodnocení je jako objektivní funkce použita metrika NDCG.

    Aby bylo možné posoudit kvalitu hodnocení při použití navrhovaného algoritmu LTR-MGA, byly vypočítány hodnoty metrik kvality pro hodnocení dokumentů ve výsledcích vyhledávání (obr. 3). Porovnání výsledků hodnocení (tabulka 2) při použití funkce základního hodnocení, základního algoritmu LTR-GA a upraveného algoritmu LTR-MGA naznačuje jeho výhodu.

    Studie navíc odhadovala čas potřebný pro hodnocení MO. To je nezbytné k potvrzení, že navrhovaná metoda LTR-MGA je v tomto ukazateli lepší než přístup založený na používání tradičních

    Rýže. 2. Porovnání algoritmů strojového učení pro hodnocení

    podle metriky NDCG pro testovací kolekce: vlevo - datová sada Gov03td, vpravo - datová sada Gov04td

    Rýže. 3. Vyhodnocení metrik kvality hodnocení pro základní klasifikační vzorec a učební algoritmy LTR-GA a LTR-MGA

    Hodnocení metrik kvality pro různé algoritmy strojového učení

    tabulka 2

    Metrika kvality hodnocení Základní funkce hodnocení LTR-GA LTR-MGA Zvýšení hodnoty metriky,%

    Přesnost 0,201 0,251 0,267 26,81

    [chráněno emailem](prvních 5 dokumentů) 0,149 0,31 0,339 90,47

    [chráněno emailem](prvních 10 dokumentů) 0,265 0,342 0,362 29,14

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

    Úplnost 0,524 0,542 0,732 39,03

    * Nejlepší hodnoty pro příslušnou metriku jsou zvýrazněny šedě

    genetický algoritmus onnogo (LTA-OL). Výsledky porovnání času stráveného prováděním algoritmů LTY-OL a LTY-MOL jsou uvedeny v tabulce. 3.

    7. Závěr. Provedené studie tedy ukázaly, že při použití navrhovaného přístupu se hodnoty uvažovaných metrik hodnocení v ISS zvyšují (v průměru o 19,55% ve srovnání s algoritmem LTL-OL). To potvrzuje, že LITA-MOL funguje správně a výrazně zlepšuje funkci hodnocení, jinými slovy úspěšně řeší problém s optimalizací. Pomocí upraveného algoritmu

    Díky aplikaci metody místní optimalizace a zavedeným omezením počtu výpočtů objektivní funkce se doba strojového učení zkrátila (v průměru o 17,71% ve srovnání s použitím tradičního genetického algoritmu LTIAOL).

    Vyvinutý algoritmus strojového učení pro hodnocení LТY-MOL lze použít v ISS, které používají model hodnocení založený na kombinaci jednoduchých funkcí hodnocení. Je však třeba vzít v úvahu určitá omezení při používání navrhovaného přístupu. Na základě

    Odhad doby provádění hodnocení strojového učení v závislosti na velikosti tréninkového vzorku

    Tabulka 3

    Velikost kolekce textových dokumentů

    Doba provedení LTR-GA

    Doba běhu LTR-MGA

    Zkrácení doby provedení,%

    Průměrná hodnota

    * Nejlepší hodnoty pro odpovídající velikost kolekce testů jsou zvýrazněny šedě

    ze získaných výsledků bylo odhaleno, že po MO je nejvyšší nárůst pozorován v metrice hodnocení kvality, jejíž hodnota byla brána jako objektivní funkce. Jiné metriky přitom nemusí mít výrazné zlepšení a v některých případech dokonce zhoršují jejich hodnoty. Jako jeden z možných přístupů k odstranění tohoto nedostatku se navrhuje vyřešit problém s optimalizací jako vícekriteriální: jednotně zlepšit několik hlavních metrik hodnocení výsledků vyhledávání, místo optimalizace jednoho. Kromě toho se v dalších studiích plánuje vyvinout metodiku pro konstrukci objektivní funkce založené na lineární konvoluci hlavních metrik hodnocení kvality ke zlepšení procesu získávání informací.

    Bibliografický seznam

    1. Tie-Yan Liu. Naučte se hodnotit za získávání informací // Základy deníků a trendy v získávání informací. Sv. 3, číslo 3. března 2009. S. 225-331.

    2. Christopher J. C. Burges, Tal Shaked, Erin Renshaw. Learning to Rank using Gradient Descent // Proceeding ICML "05 Sborník z 22. mezinárodní konference o strojovém učení. 2005. S. 89-96.

    3. Semenikhin, SV Vyšetřování přístupů ke strojovému učení pro hodnocení dokumentů vyhledávacím systémem založeným na genetických algoritmech / SV Semenikhin // Young Russia: advanced technologies in industry. - 2013. - č. 2. - S. 82 - 85.

    4. Optimalizace vícekriterií na základě genetických algoritmů v syntéze řídicích systémů: monografie. / L. A. Denisová. - Omsk: Nakladatelství OmSTU, 2014.- 170 s. -ISBN 978-5-8149-1822-2.

    5. Denisova, L. A. Automatizace parametrické syntézy řídicího systému pomocí genetického algoritmu / L. A. Denisova, V. A. Meshcheryakov // Automatizace v průmyslu. - 2012. - č. 7. - S. 34 - 38.

    6. Huber, Peter J. Robustní odhad parametru umístění // Statistiky. - 1964. - Č. 53. - S. 73-101.

    7. Semenikhin, S. V. Automatizace vyhledávání informací na základě optimalizace více kriterií a genetických algoritmů / S. V. Semenikhin, L. A. Denisova // Dynamika systémů, mechanismů a strojů. - 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ální metriky RMIP "2004 / MS Ageev, IE Kuralenok // II Ruský seminář o hodnocení metod získávání informací (ROMIP 2004), Pushchino, 2004: tr .; Ed. S. Nekrest'yanova. - St. Petersburg: Research Institute of Chemistry, St. Petersburg State University. - S. 142-150.

    10. J. A. Nelder, R. Mead, A simplexová metoda pro minimalizaci funkcí, The Computer Journal 7 (1965). 308-313.

    Svyatoslav Vitalievich SEMENIKHIN, postgraduální student katedry automatizovaného zpracování informací a řídicích systémů. Korespondenční adresa: [chráněno emailem] DENISOVÁ Lyudmila Albertovna, doktorka technických věd, docentka katedry automatizovaného zpracování informací a řídicích systémů. Korespondenční adresa: [chráněno emailem]