Kvaliteedinäitaja masinõppes. Masinaõppe probleemide mõõdikud

Iga loendi sees olevatel elementidel. Osalist järjekorda täpsustatakse tavaliselt iga elemendi hindega (näiteks "asjakohane" või "mitteoluline"; võimalik on rohkem kui kaks hinnet). Edetabelimudeli eesmärk on uute andmete koolituskomplektis paremusjärjestuse määramise meetodit parimal viisil (teatud mõttes) lähendada ja üldistada.

Õppe järjestamine on endiselt üsna noor, kiiresti arenev uurimisvaldkond, mis tekkis 2000. aastatel, kui tekkis huvi teabeotsingu vastu masinõppe meetodite rakendamisel probleemide järjestamisel.

Kollegiaalne YouTube

  • 1 / 5

    Edetabelimudeli väljaõppe ajal ja selle toimimise ajal tõlgitakse iga dokumendi-päringu paar dokumendi omadusi, päringut ja nende seost iseloomustavate järjestamisfunktsioonide (mida nimetatakse ka järjestusteguriteks või signaalideks) numbriliseks vektoriks. Sellised märgid võib jagada kolme rühma:

    Järgnevalt on toodud mõned näited LETORi andmekogumis kasutatavatest paremusjärjestusest, mis on tehnika tasemes hästi tuntud:

    • Meetmete väärtused TF, TF-IDF, BM25 ja dokumendi erinevate valdkondade (pealkiri, URL, põhitekst, linktekst) taotluse sobitamise keelemudel;
    • Dokumenditsoonide pikkused ja IDF-summad;
    • Dokumendi auastmed, mis on saadud linkide järjestamise algoritmide erinevate variantide abil, nagu PageRank ja HITS.

    Kvaliteedi mõõdikute järjestamine

    On mitmeid mõõdikuid, mille alusel hinnatakse valimi järjestamisalgoritmide toimivust ja võrreldakse neid hindajatega. Sageli kiputakse paremusjärjestuse mudeli parameetreid kohandama selliselt, et maksimeerida ühe sellise mõõdiku väärtust.

    Mõõdikute näited:

    Algoritmi klassifikatsioon

    Oma artiklis "Learning to Rank for Information Retrieval" ja temaatilistel konverentsidel peetud kõnedes analüüsis Tai-Yang Liu Microsoft Research Asia'st olemasolevaid meetodeid õpetamise paremusjärjestuse probleemi lahendamiseks ja tegi ettepaneku liigitada need kolmeks lähenemisviisiks, sõltuvalt kasutatavast sisendi esitusviisist Andmed ja karistusfunktsioonid:

    Asjalik lähenemine

    Märkmed (redigeeri)

    1. Tie-Yan Liu (2009), Teabe otsimise järjekoha õppimine, Foundations and Trends in Information Recovery: Vol. 3: nr 3, lk. 225-331, ISBN 978-1-60198-244-5, DOI 10.1561 / 1500000016... Saadaval on slaidid T. Lewi sõnavõtust WWW 2009.

    Telekommunikatsioonioperaatori klientide väljavoolust.


    Laadime vajalikud teegid ja vaatame andmeid

    impordi pandad kui pd import matplotlib.pyplot kui plt aadressilt matplotlib.pylab import rc, joonistage import merelinn kui sns sklearn.preprocessing import Labelmblencoder, OneHotEncoder sklearn.model_selection import cross_val_score from sklearn.linear_modelressing grainFress sklearn.metrics impordi täpsuse_kutsumise kõver, klassifikatsiooni_aruanne sklearn.model_selection impordi rongi_test_split df = pd.read_csv ("../../ data/ telecom_churn.csv")


    df.head (5)

    Andmete eeltöötlus

    # Teeme binaarsete veergude kaardistamise # ja kodeerime oleku näivkodeerimisega (lihtsuse huvides on parem seda mitte teha puitmudelite puhul) d = ("Jah": 1, "Ei": 0) df ["Rahvusvaheline plaan "] = df [" Rahvusvaheline plaan "]. Kaart (d) df [" Kõneposti plaan "] = df [" Kõneposti plaan "]. Kaart (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 (kodeeritud olek, veerud = ["olek" + str (i) i jaoks vahemikus (encoded_state.shape)]) df = pd.concat (, axis = 1)

    Täpsus, täpsus ja meeldejätmine

    Enne mõõdikute enda juurde liikumist on vaja tutvustada olulist kontseptsiooni nende mõõdikute kirjeldamiseks klassifitseerimisvigade osas - segaduste maatriks(veamaatriks).
    Oletame, et meil on kaks klassi ja algoritm, mis ennustab iga objekti kuulumist ühte klassi, siis näeb klassifitseerimisvea maatriks välja selline:


    Tõeline positiivne (TP) Valepositiivne (FP)
    Vale negatiivne (FN) Tõeline negatiivne (TN)

    Siin on algoritmi vastus objektile ja see on selle objekti tegelik klassi silt.
    Seega on kahte tüüpi liigitusvigu: valenegatiivne (FN) ja valepositiivne (FP).


    Algoritmikoolitus ja veamaatriksi konstrueerimine

    X = df.drop ("Churn", telg = 1) y = df ["Churn"] # Jagage proov rongi ja testiks, kõiki mõõdikuid hinnatakse testiandmekogumis X_train, X_test, y_train, y_test = train_test_split ( X, y, stratify = y, test_size = 0,33, random_state = 42) # Treenige natiivset logistilist regressiooni lr = LogisticRegression (random_state = 42) lr.fit (X_train, y_train) # Kasutage vea maatriksi koostamise funktsiooni dokumentatsioon def plot_confusion_matrix (cm, klassid, normaliseeri = vale, pealkiri = "(! LANG: Segadusmaatriks", 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="Segaduste maatriks") plt.savefig("conf_matrix.png") plt.show()!}


    Täpsus

    Intuitiivne, ilmne ja peaaegu kasutamata mõõdik on täpsus - algoritmi õigete vastuste protsent:



    See mõõdik on ebavõrdsete klassidega seotud probleemides kasutu ja seda on lihtne näitega näidata.


    Oletame, et tahame hinnata rämpsposti filtri toimivust. Meil on 100 rämpspostita e-kirja, millest 90 meie klassifikaator tuvastas õigesti (tõene negatiivne = 90, valepositiivne = 10) ja 10 rämpsposti, millest 5 klassifikaator tuvastas ka õigesti (tõene positiivne = 5, vale negatiivne = viis) ).
    Siis täpsus:



    Kui aga prognoosime kõiki e-kirju lihtsalt rämpspostiks, saame suurema täpsuse:



    Samal ajal ei ole meie mudelil absoluutselt mingit ennustusvõimet, kuna algselt tahtsime tuvastada rämpsposti. Sellest ülesaamiseks aitab meid üleminek kõigi klasside ühiselt mõõdikult klasside kvaliteedi eraldi indikaatoritele.

    Täpsus, tagasikutsumine ja F-mõõt

    Algoritmi toimivuse hindamiseks igas klassis eraldi tutvustame täpsus- ja tagasikutsumismõõdikuid.




    Täpsust võib tõlgendada kui klassifikaatori poolt positiivseks ja samal ajal tõeliselt positiivseks nimetatavate objektide osakaalu ning meenutamine näitab, millise osa positiivse klassi objektidest kõikidest positiivse klassi objektidest algoritm leidis.



    Just täpsuse juurutamine ei võimalda meil kõiki objekte ühte klassi kirjutada, kuna sel juhul saame valepositiivse taseme tõusu. Meenutamine näitab algoritmi võimet antud klassi üldiselt tuvastada ja täpsus näitab võimet seda klassi teistest klassidest eristada.


    Nagu me varem märkisime, on kahte tüüpi liigitusvigu: valepositiivne ja vale negatiivne. Statistikas nimetatakse esimest tüüpi viga I tüübi veaks ja teist tüüpi II tüübi veaks. Meie abonentide arvu kindlaksmääramise probleemi puhul on esmaseks veaks lojaalse abonendi aktsepteerimine väljamineva abonendi suhtes, kuna meie nullhüpotees on, et keegi tellijatest ei lahku, ja me lükkame selle hüpoteesi tagasi. Sellest tulenevalt on teist tüüpi viga väljuva abonendi "vahelejätmine" ja nullhüpoteesi ekslik aktsepteerimine.


    Täpsus ja tagasikutsumine ei sõltu erinevalt täpsusest klasside suhtest ja on seetõttu rakendatavad tasakaalustamata proovide tingimustes.
    Sageli on reaalses praktikas ülesandeks leida optimaalne (kliendi jaoks) tasakaal nende kahe mõõdiku vahel. Klassikaline näide on klientide arvu määramise probleem.
    Ilmselgelt me ​​ei leia kõigist väljuvad kliendid ja ainult neid. Kuid pärast klientide säilitamise strateegia ja ressursside kindlaksmääramist saame valida vajaliku täpsuse ja tagasivõtmise künnised. Näiteks võite keskenduda ainult kõrge tootlikkusega klientide või nende lahkumise tõenäosusele, kellel on kõnekeskuse ressursid piiratud.


    Tavaliselt algoritmi hüperparameetrite optimeerimisel (näiteks võrguga iteratsiooni korral GridSearchCV), kasutatakse ühte mõõdikut, mille paranemist loodame näha prooviproovil.
    Täpsuse ja meelde tuletamise koondatud kvaliteedinäitajaks ühendamiseks on mitmeid erinevaid viise. F -mõõt (üldiselt) - harmooniline keskmine täpsus ja meeldejätmine:



    Sel juhul määrab see meetrika täpsuse kaalu ja kui see on harmooniline keskmine (koefitsiendiga 2, nii et täpsuse korral = 1 ja tagasikutsumise korral = 1)
    F-mõõt saavutab maksimumi, kui täielikkus ja täpsus on võrdsed ühega ning on nulli lähedal, kui üks argumentidest on nullilähedane.
    Sklearnil on mugav funktsioon _metrics.classification aruanne, mis tagastab meeldejätmise, täpsuse ja F-mõõtmise iga klassi kohta, samuti iga klassi eksemplaride arvu.


    aruanne = liigitusaruanne (y_test, lr.predict (X_test), target_names = ["Non-churned", "Churned"]) print (aruanne)
    klassi täpsus tagasikutsumine f1-skoor toetus
    Segamata 0.88 0.97 0.93 941
    Segatud 0.60 0.25 0.35 159
    keskm / kokku 0.84 0.87 0.84 1100

    Siinkohal tuleb märkida, et tegelikkuses valitsevate tasakaalustamata klassidega seotud probleemide korral tuleb klasside suhte võrdsustamiseks sageli kasutada andmestiku kunstliku muutmise meetodeid. Neid on palju ja me ei puuduta neid, saate vaadata mõnda meetodit ja valida oma ülesande jaoks sobiva.

    AUC-ROC ja AUC-PR

    Kui teisendada algoritmi tegelik vastus (reeglina klassi kuulumise tõenäosus, vt SVM eraldi) binaarsildiks, peame valima mingi läve, mille juures 0 saab 1. Lävi, mis võrdub 0,5, tundub loomulik ja lähedane , kuid see ei osutu alati optimaalseks, näiteks eelnimetatud klassitasakaalu puudumise korral.


    Üks viise mudeli kui terviku hindamiseks ilma konkreetse künnisega sidumata on AUC -ROC (või ROC AUC) - pindala ( A rea U nder C urve) veakõvera all ( R vastuvõtja O perating C iseloomulik kõver). See kõver on joon (0,0) kuni (1,1) tõelise positiivse määra (TPR) ja valepositiivse määra (FPR) koordinaatides:




    TPR -i me juba teame, see on täielikkus ja FPR näitab, millist negatiivse klassi objektide osakaalu algoritm valesti ennustas. Ideaalsel juhul, kui klassifikaator ei tee vigu (FPR = 0, TPR = 1), saame kõvera aluse ala võrdseks ühega; muidu, kui klassifikaator juhuslikult väljastab klassi tõenäosused, kaldub AUC-ROC väärtusele 0,5, kuna klassifikaator väljastab sama arvu TP ja FP.
    Iga graafiku punkt vastab teatud läve valikule. Kõvera all olev ala näitab sel juhul algoritmi kvaliteeti (rohkem on parem), lisaks on oluline ka kõvera järsk - me tahame maksimeerida TPR -i, minimeerides FPR, mis tähendab, et ideaaljuhul peaks meie kõver kalduma punkt (0,1).


    ROC kõvera joonistamise kood

    sns.set (font_scale = 1.5) sns.set_color_codes ("vaigistatud") plt.figure (figsize = (10, 8)) fpr, tpr, künnised = 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õver ") plt.savefig (" ROC.png ") plt.show ()



    AUC-ROC kriteerium on tasakaalustamata klasside suhtes vastupidav (spoiler: kahjuks pole kõik nii üheselt mõistetav) ja seda saab tõlgendada kui tõenäosust, et juhuslikult valitud positiivne objekt asetatakse klassifikaatori võrra kõrgemale (on suurem tõenäosus olla positiivne) ) kui juhuslikult valitud negatiivne objekt ...


    Mõelge järgmisele probleemile: miljonist dokumendist peame valima 100 asjakohast dokumenti. Oleme õppinud kahte algoritmi:

    • 1. algoritm tagastab 100 dokumenti, millest 90 on asjakohased. Seega,

    • 2. algoritm tagastab 2000 dokumenti, millest 90 on asjakohased. Seega,


    Tõenäoliselt valiksime esimese algoritmi, mis annab konkurendiga võrreldes väga vähe valepositiivseid tulemusi. Kuid valepositiivse määra erinevus nende kahe algoritmi vahel äärmiselt väike - ainult 0,0019. See on tingitud asjaolust, et AUC-ROC mõõdab valepositiivse osakaalu tõelise negatiivse suhtes ning probleemide puhul, kus teine ​​(suurem) klass pole meile nii oluline, ei pruugi see algoritmide võrdlemisel anda täiesti piisavat pilti .


    Olukorra parandamiseks pöördume tagasi täielikkuse ja täpsuse juurde:

    • 1. algoritm

    • 2. algoritm


    Siin on juba märgatav kahe algoritmi oluline erinevus - täpsus 0,855!


    Kõvera konstrueerimiseks kasutatakse ka täpsust ja tagasikutsumist ning sarnaselt AUC-ROC-le selle all oleva ala leidmiseks.



    Siinkohal võib märkida, et väikeste andmekogumite puhul võib PR-kõvera alune ala olla liiga optimistlik, sest see arvutatakse trapetsikujulisel meetodil, kuid tavaliselt on sellistes ülesannetes piisavalt andmeid. Üksikasju AUC-ROC ja AUC-PR vahelise seose kohta leiate siit.

    Logistiline kaotus

    Logistika kadumise funktsioon on eraldiseisev, määratletud järgmiselt:



    siin on algoritmi vastus -ndal objektil, tegelik klassimärgis -ndal objektil ja valimi suurus.


    Logistilise kadu funktsiooni matemaatilise tõlgendamise üksikasjad on lineaarsete mudelite postituse raames juba kirjutatud.
    See näitaja esineb harva ärinõuetes, kuid sageli kaggle'i ülesannetes.
    Intuitiivselt võib loglosside minimeerimist pidada täpsuse maksimeerimise ülesandeks, karistades valesid ennustusi. Siiski tuleb märkida, et logloss karistab klassifitseerija usaldust vale vastuse eest äärmiselt tugevalt.


    Vaatleme näidet:


    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 ebakindla klassifikatsiooniga% f "% logloss_crutch (1, 0.5)) >> Logloss ebakindla klassifikatsiooniga 0.693147 print (" Logloss kindla klassifikatsiooni ja õige vastusega% f "% logloss_crutch (1, 0.9)) >> Logloss kindla klassifikatsiooniga ja õige vastus 0.105361 print (" Logloss kindla klassifikatsiooni ja vale vastusega% f "% logloss_crutch (1, 0,1)) >> Logloss kindla klassifikatsiooni ja vale vastusega 2.302585

    Pange tähele, kuidas logloss on vale vastuse ja enesekindla klassifikatsiooni korral dramaatiliselt kasvanud!
    Järelikult võib ühe objekti viga põhjustada üldise prooviviga olulise halvenemise. Sellised objektid on sageli kõrvalekalded, mida tuleb meeles pidada, et neid filtreerida või eraldi käsitleda.
    Kõik loksub paika, kui joonistada logloss -graafik:



    On näha, et mida lähemale nullile algoritmi vastus maapinna tõega = 1, seda suurem on veaväärtus ja mida järsem kõver kasvab.

    Teeme kokkuvõtte:

    • Mitmeklassilise klassifikatsiooni korral peate hoolikalt jälgima iga klassi mõõdikuid ja järgima otsuse loogikat ülesandeid selle asemel, et optimeerida mõõdikut
    • Ebavõrdsete klasside puhul on vaja valida koolituste klasside tasakaal ja mõõdik, mis kajastab õigesti klassifikatsiooni kvaliteeti
    • ja madrugado abi saamiseks selle artikliga.

    See peatükk tutvustab populaarseid meetodeid klassifitseerimismudeli kvaliteedi hindamiseks, mida kasutatakse muu hulgas ka teistel selleteemalistel töödel. Siin on esitatud nende hindamiseks kasutatud mõõdikute kirjeldus ja põhjendus.

    Kvaliteedi hindamise mõõdikud

    Täielik täpsus

    See mõõdik on üks lihtsamaid ja samal ajal universaalseid meetodeid klassifitseerimisalgoritmide toimivuse hindamiseks. Selle koefitsiendi väärtus arvutatakse kui õigesti klassifitseeritud objektide osakaal valimis olevate objektide koguarvust. See mõõdik on populaarne tänu oma lihtsusele ja võimalusele laiendada mis tahes arvu klasse. Selle mõõdiku peamine puudus on see, et see omistab kõikidele dokumentidele sama kaalu, mis võib olla vale juhul, kui koolituskomplektis on dokumente tugevalt nihutatud ühe või mitme klassi poole. Sellel mõõdikul võib olla kõrge väärtus, kuid sama klassi klassifikaator võib näidata äärmiselt madalat töökvaliteeti. Samal ajal ei näita mõõdik seda mingil viisil.

    Täpsus, täielikkus ja F-mõõt

    Selliseid näitajaid nagu täpsus ja tagasikutsumine kasutati esmakordselt laialdaselt teabe otsimise probleeme lahendavate süsteemide jõudluse hindamisel. Süsteemi täpsus ühe klassi piires on teatud klassi kuuluvate objektide osakaal kõigi süsteemi poolt sellele klassile määratud objektide suhtes. Täielikkust väljendatakse klassis oleva klassifikaatori leitud objektide osakaaluna selle klassi kõigi objektide suhtes. Tabel 4 on eraldi klassi situatsioonitabel, kus TP (tõene positiivne) on tõeliselt positiivne otsus, TN (tõene negatiivne) on tõene-negatiivne otsus, FP (valepositiivne) on valepositiivne otsus ja FN (valenegatiivne) on vale. -negatiivne otsus.

    Tabel 1 - Objektide klassi juhuslikkuse tabel

    Seega arvutatakse täpsus ja täielikkus järgmiselt:

    F-mõõt ühendab teabe hinnatud algoritmi täpsuse ja täielikkuse kohta. See arvutatakse täpsuse ja täielikkuse näitajate harmoonilise keskmisena:

    Tulenevalt asjaolust, et F-mõõt arvutatakse iga klassi kohta eraldi, on seda mugav kasutada algoritmi konkreetsete vigade otsimiseks ja analüüsimiseks, mitme klassiga klassifikatsiooni hindamiseks. Pealegi on suure hulga klasside puhul vaja omadust, mis koondaks kõikide klasside täielikkuse ja täpsuse ning iseloomustaks süsteemi üldist käitumist. Selles töös kasutatakse selleks järgmisi koondväärtusi: makro täpsus, mis arvutatakse kõigi klasside täpsuse aritmeetilise keskmisena, makro tagasikutsumine, mis arvutatakse kõigi klasside täielikkuse aritmeetilise keskmisena, ja makro F-mõõt (makro F-skoor), mis on nendevaheline harmooniline keskmine.

    Ristvalideerimine

    Ristvalideerimine on üks levinumaid meetodeid erinevate masinõppe algoritmide täieliku testimise ja toimivuse hindamiseks. Sõltumatu valimi puhul võimaldab see meetod saada vea tõenäosuse erapooletu hinnangu, erinevalt koolitatud valimi keskmisest veast, mis võib olla algoritmi ülekoormamise tõttu vea tõenäosuse kallutatud hinnang. Selle protseduuri teine ​​eelis on võimalus saada hinnang algoritmi vea tõenäosuse kohta, kui testimiseks pole spetsiaalselt loodud kontrollproovi.

    Oletame, et see on objektide omaduste kirjelduste kogum, millele on määratud piiratud kasutusjuhtude näidis, kus on piiratud klasside komplekt. Esitatakse kaardistamine, mis määrab algoritmi suvalisele kasutusjuhtumite valikule. Seejärel hinnatakse suvalise pretsedentide valimi algoritmi kvaliteeti funktsionaalse kvaliteedi abil:

    kus on mõni mitte-negatiivne funktsioon, mis tagastab õige klassi sildiga algoritmi vea väärtuse.

    Tere, Habr!

    Masinõppeülesannete puhul kasutatakse mõõdikuid mudelite kvaliteedi hindamiseks ja erinevate algoritmide võrdlemiseks ning nende valik ja analüüs on andmestiku töö hädavajalik osa.

    Selles artiklis vaatleme mõningaid kvaliteedikriteeriume klassifitseerimisprobleemides, arutame, mis on mõõdiku valimisel oluline ja mis võib valesti minna.

    Mõõdikud klassifitseerimisülesannetes

    Kasulike omaduste demonstreerimiseks õppima ja mõõdikute visuaalne esitus, kasutame oma andmestikku telekommunikatsioonioperaatori klientide arvu kohta, millega kohtusime kursuse esimeses artiklis.

    Laadime vajalikud teegid ja vaatame andmeid

    Pandade importimine pd -na importimine matplotlib.pyplot kui plt -st matplotlib.pylab import rc, krundi import merelinn kui sns -st sklearn.preprocessing import Labelmblencoder, OneHotEncoder sklearn.model_selection import cross_val_score from sklearn.linear_modelarning GrainForming GrainF sklearn.metrics impordi täpsuse_kutsumise kõver, klassifikatsiooni_aruanne sklearn.model_selection impordi rongi_test_split df = pd.read_csv ("../../ data/ telecom_churn.csv")

    Df.pea (5)

    Andmete eeltöötlus

    # Teeme binaarsete veergude kaardistamise # ja kodeerime oleku näivkodeerimisega (lihtsuse huvides on parem seda puitmudelite puhul mitte teha) d = ("Jah": 1, "Ei": 0) df ["Rahvusvaheline plaan "] = df [" Rahvusvaheline plaan "]. Kaart (d) df [" Kõneposti plaan "] = df [" Kõneposti plaan "]. Kaart (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 (kodeeritud olek, veerud = ["olek" + str (i) i jaoks vahemikus (encoded_state.shape)]) df = pd.concat (, axis = 1)

    Täpsus, täpsus ja meeldejätmine

    Enne mõõdikute enda juurde liikumist on vaja tutvustada olulist kontseptsiooni nende mõõdikute kirjeldamiseks klassifitseerimisvigade osas - segaduste maatriks(veamaatriks).
    Oletame, et meil on kaks klassi ja algoritm, mis ennustab iga objekti kuulumist ühte klassi, näeb klassifitseerimisvea maatriks välja selline:

    Tõeline positiivne (TP) Valepositiivne (FP)
    Vale negatiivne (FN) Tõeline negatiivne (TN)

    see on algoritmi vastus objektil ja

    Selle objekti tõeline klassi silt.
    Seega on kahte tüüpi liigitusvigu: valenegatiivne (FN) ja valepositiivne (FP).

    Algoritmikoolitus ja veamaatriksi konstrueerimine

    X = df.drop ("Churn", telg = 1) y = df ["Churn"] # Jagage proov rongi ja testiks, kõiki mõõdikuid hinnatakse testiandmekogumis X_train, X_test, y_train, y_test = train_test_split ( X, y, stratify = y, test_size = 0,33, random_state = 42) # Treenige natiivset logistilist regressiooni dokumentatsioon def plot_confusion_matrix (cm, klassid, normaliseeri = vale, pealkiri = "(! LANG: Segadusmaatriks", 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="Segaduste maatriks") plt.savefig("conf_matrix.png") plt.show()!}

    Täpsus

    Intuitiivne, ilmne ja peaaegu kasutamata mõõdik on täpsus - algoritmi õigete vastuste protsent:

    See mõõdik on ebavõrdsete klassidega seotud probleemides kasutu ja seda on lihtne näitega näidata.

    Oletame, et tahame hinnata rämpsposti filtri toimivust. Meil on 100 rämpspostita e-kirja, millest 90 meie klassifikaatori tuvastas õigesti (tõene negatiivne = 90, valepositiivne = 10) ja 10 rämpsposti, millest 5 klassifikaator tuvastas ka õigesti (tõene positiivne = 5, vale negatiivne = 5) .
    Siis täpsus:

    Kui aga prognoosime kõiki e-kirju lihtsalt rämpspostiks, saame suurema täpsuse:

    Samal ajal puudub meie mudelil igasugune ennustusvõime, kuna algselt tahtsime tuvastada rämpsposti. Sellest ülesaamiseks aitab meid üleminek kõigi klasside ühiselt mõõdikult klasside kvaliteedi eraldi näitajatele.

    Täpsus, tagasikutsumine ja F-mõõt

    Algoritmi toimivuse hindamiseks igas klassis eraldi tutvustame täpsus- ja tagasikutsumismõõdikuid.

    Täpsust võib tõlgendada kui klassifikaatori poolt positiivseks ja samal ajal tõeliselt positiivseks nimetatavate objektide osakaalu ning meenutamine näitab, millise osa positiivse klassi objektidest kõikidest positiivse klassi objektidest algoritm leidis.

    Just täpsuse juurutamine ei võimalda meil kõiki objekte ühte klassi kirjutada, kuna sel juhul saame valepositiivse taseme tõusu. Meenutamine näitab algoritmi võimet antud klassi üldiselt tuvastada ja täpsus näitab võimet seda klassi teistest klassidest eristada.

    Nagu me varem märkisime, on kahte tüüpi liigitusvigu: valepositiivne ja vale negatiivne. Statistikas nimetatakse esimest tüüpi viga I tüübi veaks ja teist tüüpi II tüübi veaks. Abonentide arvu kindlaksmääramise probleemi puhul on esimene viga lojaalse abonendi aktsepteerimine väljamineva abonendi vastu, kuna meie nullhüpotees on, et ükski abonentidest ei lahku, ja me lükkame selle hüpoteesi tagasi. Sellest tulenevalt on teist tüüpi viga väljuva abonendi "vahelejätmine" ja nullhüpoteesi ekslik aktsepteerimine.

    Täpsus ja tagasikutsumine ei sõltu erinevalt täpsusest klasside suhtest ja on seetõttu rakendatavad tasakaalustamata proovide tingimustes.
    Sageli on reaalses praktikas ülesandeks leida optimaalne (kliendi jaoks) tasakaal nende kahe mõõdiku vahel. Klassikaline näide on klientide arvu määramise probleem.
    Ilmselgelt me ​​ei leia kõigist väljuvad kliendid ja ainult neid. Kuid kui oleme kindlaks teinud klientide säilitamise strateegia ja ressursid, saame valida vajaliku täpsuse ja tagasi kutsuda. Näiteks võite keskenduda ainult kõrge tootlusega klientide või nende kohta, kes tõenäolisemalt teatavad, säilitamiseks, kuna kõnekeskuse ressurss on meie jaoks piiratud.

    Tavaliselt algoritmi hüperparameetrite optimeerimisel (näiteks võrguga iteratsiooni korral GridSearchCV), kasutatakse ühte mõõdikut, mille paranemist loodame näha prooviproovil.
    Täpsuse ja meelde tuletamise koondatud kvaliteedinäitajaks ühendamiseks on mitmeid erinevaid viise. F-mõõt (üldiselt

    ) - harmooniline keskmine täpsus ja meeldejätmine:

    sel juhul määrab täpsuse kaalu mõõdikus ja

    see on harmooniline keskmine (kordajaga 2, nii et täpsuse = 1 ja tagasikutsumise = 1 korral on meil

    )
    F-mõõt saavutab maksimumi, kui täielikkus ja täpsus on võrdsed ühega ning on nulli lähedal, kui üks argumentidest on nullilähedane.
    Sklearnil on mugav funktsioon _metrics.classification aruanne tagasikutsumine, täpsus ja F-mõõt iga klassi kohta, samuti iga klassi eksemplaride arv.

    Aruanne = klassifikatsiooni aruanne (y_test, lr.predict (X_test), target_names = ["Non-churned", "Churned"]) print (aruanne)

    klassi täpsus tagasikutsumine f1-skoor toetus
    Segamata 0.88 0.97 0.93 941
    Segatud 0.60 0.25 0.35 159
    keskm / kokku 0.84 0.87 0.84 1100

    Siinkohal tuleb märkida, et tegelikkuses valitsevate tasakaalustamata klassidega seotud probleemide korral tuleb klasside suhte võrdsustamiseks sageli kasutada andmestiku kunstliku muutmise meetodeid. Neid on palju ja me ei puuduta neid, võite vaadata mõnda meetodit ja valida oma ülesande jaoks sobiva.

    AUC-ROC ja AUC-PR

    Kui teisendada algoritmi tegelik vastus (reeglina klassi kuulumise tõenäosus, vt SVM eraldi) binaarsildiks, peame valima mingi läve, mille juures 0 saab 1. Lävi, mis võrdub 0,5, tundub loomulik ja lähedane , kuid see ei osutu alati optimaalseks, näiteks eelnimetatud klassitasakaalu puudumise korral.

    Üks viise mudeli kui terviku hindamiseks ilma konkreetse künnisega sidumata on AUC -ROC (või ROC AUC) - pindala ( A rea U nder C urve) veakõvera all ( R vastuvõtja O perating C iseloomulik kõver). See kõver on joon (0,0) kuni (1,1) tõelise positiivse määra (TPR) ja valepositiivse määra (FPR) koordinaatides:

    TPR -i me juba teame, see on täielikkus ja FPR näitab, millist negatiivse klassi objektide osakaalu algoritm valesti ennustas. Ideaalis, kui klassifikaator ei tee vigu (FPR = 0, TPR = 1), saame kõvera all oleva ala võrdseks ühega, vastasel juhul, kui klassifikaator juhuslikult väljastab klassi tõenäosused, kipub AUC-ROC olema 0,5, kuna klassifikaator väljastab sama palju TP ja FP.
    Iga graafiku punkt vastab teatud läve valikule. Kõvera all olev ala näitab sel juhul algoritmi kvaliteeti (rohkem on parem), lisaks on oluline ka kõvera järsk - me tahame maksimeerida TPR -i, minimeerides FPR, mis tähendab, et ideaaljuhul peaks meie kõver kalduma punkt (0,1).

    ROC kõvera joonistamise kood

    Sns.set (font_scale = 1.5) sns.set_color_codes ("vaigistatud") plt.figure (figsize = (10, 8)) fpr, tpr, künnised = 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õver ") plt.savefig (" ROC.png ") plt.show ()

    AUC-ROC kriteerium on tasakaalustamata klasside suhtes vastupidav (spoiler: kahjuks, kuid mitte kõik pole nii üheselt mõistetav) ja seda saab tõlgendada kui tõenäosust, et juhuslikult valitud positiivne objekt asetatakse klassifikaatori võrra kõrgemale (on suurem tõenäosus olla positiivne) kui juhuslikult valitud negatiivne objekt.

    Mõelge järgmisele probleemile: miljonist dokumendist peame valima 100 asjakohast dokumenti. Oleme õppinud kahte algoritmi:

    • 1. algoritm tagastab 100 dokumenti, millest 90 on asjakohased. Seega,
    • 2. algoritm tagastab 2000 dokumenti, millest 90 on asjakohased. Seega,

    Tõenäoliselt valiksime esimese algoritmi, mis annab konkurendiga võrreldes väga vähe valepositiivseid tulemusi. Kuid valepositiivse määra erinevus nende kahe algoritmi vahel äärmiselt väike - ainult 0,0019. See on tingitud asjaolust, et AUC-ROC mõõdab valepositiivse osakaalu tõelise negatiivse suhtes ning probleemide puhul, kus teine ​​(suurem) klass pole meile nii oluline, ei pruugi see algoritmide võrdlemisel anda täiesti piisavat pilti .

    Olukorra parandamiseks pöördume tagasi täielikkuse ja täpsuse juurde:

    • 1. algoritm
    • 2. algoritm

    Siin on juba märgatav kahe algoritmi oluline erinevus - täpsus 0,855!

    Kõvera konstrueerimiseks kasutatakse ka täpsust ja tagasikutsumist ning sarnaselt AUC-ROC-le selle all oleva ala leidmiseks.

    Siinkohal võib märkida, et väikeste andmekogumite puhul võib PR-kõvera alune ala olla liiga optimistlik, sest see arvutatakse trapetsikujulisel meetodil, kuid tavaliselt on sellistes ülesannetes piisavalt andmeid. Üksikasju AUC-ROC ja AUC-PR vahelise seose kohta leiate siit.

    Logistiline kaotus

    Logistika kadumise funktsioon on eraldiseisev, määratletud järgmiselt:

    see on algoritmi vastus

    Ohm objekt,

    õige klassi silt peal

    Ohm objekt ja

    näidissuurus.

    Logistilise kadu funktsiooni matemaatilise tõlgendamise üksikasjad on lineaarsete mudelite postituse raames juba kirjutatud.
    See näitaja esineb harva ärinõuetes, kuid sageli kaggle'i ülesannetes.
    Intuitiivselt võib loglosside minimeerimist pidada täpsuse maksimeerimise ülesandeks, karistades eksitusi. Siiski tuleb märkida, et logloss karistab klassifitseerija usaldust vale vastuse eest äärmiselt tugevalt.

    Vaatleme näidet:

    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 ebakindla klassifikatsiooniga% f "% logloss_crutch (1, 0.5)) >> Logloss ebakindla klassifikatsiooniga 0.693147 print (" Logloss kindla klassifikatsiooni ja õige vastusega% f "% logloss_crutch (1, 0.9)) >> Logloss kindla veendumusega ja õige vastus 0.105361 print (" Logloss kindla klassifikatsiooni ja vale vastusega% f "% logloss_crutch (1, 0,1)) >> Logloss kindla klassifikatsiooni ja vale vastusega 2.302585

    Pange tähele, kuidas logloss on vale vastuse ja enesekindla klassifikatsiooni korral dramaatiliselt kasvanud!
    Järelikult võib ühe objekti viga põhjustada üldise prooviviga olulise halvenemise. Sellised objektid on sageli kõrvalekalded, mida tuleb meeles pidada, et neid filtreerida või eraldi käsitleda.
    Kõik loksub paika, kui joonistada logloss -graafik:

    On näha, et mida lähemale nullile algoritmi vastus maapinna tõega = 1, seda suurem on veaväärtus ja mida järsem kõver kasvab.

    Summeerida:

    • Mitmeklassilise klassifikatsiooni korral peate hoolikalt jälgima iga klassi mõõdikuid ja järgima otsuse loogikat ülesandeid selle asemel, et optimeerida mõõdikut
    • Ebavõrdsete klasside puhul on vaja valida koolituste klasside tasakaal ja mõõdik, mis kajastab õigesti klassifikatsiooni kvaliteeti
    • Mõõdiku valimisel tuleks keskenduda teemavaldkonnale, andmete eeltöötlusele ja võimalusel segmenteerimisele (nagu rikasteks ja vaesteks klientideks jagamise puhul)

    Kasulikud lingid

    1. Jevgeni Sokolovi kursus: Seminar mudelite valikul (on teavet regressiooniprobleemide mõõdikute kohta)
    2. Probleemid AUC-ROC-ga A.G. Djakonova
    3. Lisateavet teiste mõõdikute kohta saate lugeda kaggle'ist. Iga mõõdiku kirjeldusse on lisatud link võistlusele, kus seda kasutati
    4. Bogdan Melniku aka ld86 ettekanne tasakaalustamata proovide kohta

    UDC 519,816

    S. V. SEMENIKHIN L. A. DENISOVA

    Omski Riiklik Tehnikaülikool

    VAHEMASINA ÕPPEVIIS

    PÕHINE YRSO METRICU MUUDETUD GENEETILISEL ALGORITHMIL

    Kaalutakse teabe otsingu tulemuste lehel dokumentide järjestamise probleemi ja masinõppe küsimusi. Pakutakse lähenemisviisi paremusjärjestuse optimeerimiseks, kasutades muudetud geneetilisel algoritmil põhinevat NOCO kvaliteedimõõdikut. Uuriti väljatöötatud algoritme (testikogudel LETO ^) ja näidati nende tõhusust pingerea masinõppes.

    Märksõnad: teabe otsimine, masinõppe pingerida, asjakohasus, optimeerimine, geneetilised algoritmid.

    1. Sissejuhatus. Kaasaegsetes teabeotsingusüsteemides (ISS) on süsteemi hallatavate andmemahtude maht nii suur, et põhiülesandeks on asjakohaste dokumentide järjestamine vastuseks kasutaja otsingupäringule. ISSi praeguses arenguetapis pakub masinõppe (ML) pingerida kõige suuremat huvi. Olemasolevatel ML -i lähenemisviisidel, mis põhinevad numbrilistel meetoditel (eelkõige gradientmeetoditel) või analüütilistel arvutustel, on mitmeid puudusi, mis mõjutavad oluliselt teabe otsimise kvaliteeti ja asjakohaste dokumentide järjestamiseks kuluvat aega.

    Uuringu alguses kaaluti masinõppe paremusjärjestuse loetelulisi lähenemisviise, millest enamik kasutab gradiendi laskumise meetodit. Vaadeldavates töödes on ML taandatud otsingukvaliteedi mõõdikute (SEQ) optimeerimisele, kuid kasutatakse ainult mõõdikuid, mida esindavad pidevad funktsioonid. See piirang toob sageli kaasa asjaolu, et optimeerimise tulemusena on paremusjärjestuse funktsioonil madalamad skoorid paljude oluliste aktsepteeritud näitajate puhul (DCG, nDCG, Graded Mean Reciprocal Rank jne), mis on diskreetsed funktsioonid. Dokumendis tehakse ettepanek kasutada geneetilisi algoritme (GA) paremusjärjestuse õpetamisel, et minimeerida Huberi kadumisfunktsiooni, kasutades võrdlusväärtustena asjakohaseid eksperthinnanguid. Samuti pakuti välja lähenemisviis ML -ile, mis põhineb teabeotsingu kvaliteedi diskreetsete mõõdikute optimeerimisel.

    2. Avaldus masinõppe paremusjärjestuse probleemi kohta. Enamikus kaasaegsetes teabeotsingusüsteemides on paremusjärjestus üles ehitatud n lihtsa järjestamisfunktsiooni (PRF) alusel ja selle saab kirjutada järgmiselt:

    kus SRF¡ on dokumendi d ja päringu q lihtsaim järjestamisfunktsioon, WCi on lihtsa järjestamisfunktsiooni kaalukoefitsient, n on PRF -ide arv edetabelisüsteemis.

    Masinõppe käigus reastamiseks kasutati testdokumendi LBTOY otsingudokumentide B komplekti ja päringuid O. Kõigi deO -taotluste jaoks moodustatakse iga deD -dokumendiga paar. IRS määrab iga sellise paari jaoks asjakohasuse väärtused, mida kasutatakse otsingutulemuste järjestamiseks. Paremusjärjestuse kvaliteedi hindamiseks nõuab süsteem iga dokumendi-päringu paari (^, e) jaoks asjakohasuse võrdlusväärtusi E. Nendel eesmärkidel kasutatakse asjakohaseid eksperthinnanguid.

    Uuringu läbiviimiseks kasutasime ISS -i, milles pingerida koostatakse N = 5 lihtsa järjestamisfunktsiooni alusel SRFi (WC) l г = 1, N, mis moodustavad optimaalsuse vektorkriteeriumi:

    kus WCе (WC) on muutuvate parameetrite vektor; (ШС), (ЯБ) on vastavalt parameetrite ja vektorikriteeriumide ruumid.

    Geneetiliste algoritmide kasutamine ML -i järjestamiseks võimaldab maksimeerida diskreetseid kvaliteedimõõdikuid, näiteks nDCG. NDCG mõõdik dokumentide järjestamiseks otsingumootoris määratakse vastavalt järgmisele avaldisele:

    DCG @ n = X 2 ---

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

    kus hinne (p) on keskmine asjakohasuse skoor, mille eksperdid on andnud dokumendile, mis asub tulemuste loendis positsioonil, hinne; 1 / log2 (2 + p) - koefitsient sõltuvalt dokumendi asukohast (esimestel dokumentidel on suurem kaal).

    Seejärel kirjutatakse NDCG normaliseeritud versioon järgmiselt

    N000 @ n = RSD @ n / g,

    kus r on normaliseerumistegur, mis on võrdne maksimaalse võimaliku väärtusega 0С [e -post kaitstud] n antud päringu puhul (st võrdne ideaalse paremusjärjestuse OOO -ga).

    Seega OSS -i mõõdiku optimeerimiseks (maksimeerimiseks) kirjutatakse eesmärgifunktsioon (YM) järgmisel kujul

    3. Otsingutulemuste paremusjärjestuse kvaliteedi mõõdikud. Dokumentide otsingutulemustes järjestamisel toimivad kvaliteedinäitajad kriteeriumidena. ISS -i kvaliteedi hindamiseks üldtunnustatud mõõdikute loendist on valitud kolm peamist, mis hindavad teabe otsimise täpsust, asjakohasust ja täielikkust.

    1. Informatsiooni otsimise täpsuse kriteerium

    kus a on leitud asjakohaste dokumentide arv, b on dokumentide arv, mida ekslikult peetakse asjakohaseks.

    2. Bprefi kriteeriumi, mis hindab teabe otsimise asjakohasust, kasutatakse R -asjakohaste dokumentidega töö töötlemiseks ja see arvutatakse valemi abil

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

    Siin tähistab r teadaolevat asjakohast dokumenti ja NonRelBefore (r) - teadaolevate ebaoluliste dokumentide arv, mis on kõrgemal kui r (arvutuses võetakse arvesse ainult esimest R -i hinnanguliselt ebaolulistest dokumentidest).

    3. Otsingutulemuste täielikkuse kriteerium

    r = a / (a+ c),

    kus a on leitud asjakohaste dokumentide arv, c on leidmata asjakohaste dokumentide arv.

    4. Testkogud. Masinõppeülesande korral nõuab paremusjärjestus dokumentide ja päringute komplekti, millele vastavad asjakohasuse skoorid määravad eksperdid. Neid andmeid kasutatakse paremusjärjestuse funktsiooni masinõppimiseks ja kvaliteedi hindamiseks.

    otsingutulemuste järjestamine süsteemi järgi. ML -protsessis kasutatakse testikogusid treeningkomplektina ja mõjutavad seetõttu tulemusi märkimisväärselt. Uurimistöödeks kasutati dokumentide ja taotluste testkogu LETOR. Seda kollektsiooni kasutab Microsoft Researchi teabeotsingu uurimiseks. Tabel 1 näitab LETOR testikogude omadusi.

    5. Muudetud geneetiline algoritm. Geneetiliste algoritmide kasutamiseks masinõppes reastamiseks tuleb probleem sõnastada nii, et lahendus oleks kodeeritud vektorina (genotüüp), kus iga geen võib olla bitt, arv või muu objekt. Sel juhul on genotüüp esindatud vastavate järjestustegurite kaalutegurite vektoriga. Geneetilise algoritmi täitmise peatamise tingimus on optimaalse lahenduse leidmine, põlvkondade arvu ammendumine või evolutsiooniks eraldatud aeg.

    Tuleb märkida, et GA -d on kõige tõhusamad globaalse äärmuse piirkonna otsimisel, kuid nad võivad töötada aeglaselt, kui on vaja leida selles piirkonnas kohalik miinimum. Kavandatud viis selle puuduse vältimiseks on luua muudetud geneetiline algoritm (MGA), mis lülitub kohaliku (kiire) optimeerimisalgoritmi peale globaalse optimaalse piirkonna leidmist põhilise GA abil. Kavandatav MGA on hübriidmeetod, mis põhineb klassikalisel GA -l ja Nelder -Meadi meetodil (simpleksalgoritm). Nelder - Mead meetod, sageli kasutatav mittelineaarne optimeerimisalgoritm, on numbriline meetod objektiivse funktsiooni miinimumi leidmiseks mitmemõõtmelises ruumis. Käesolevas dokumendis välja pakutud hübriid MGA algoritm lülitub Nelder -Mead meetodile pärast seda, kui GA peatamise tingimused on täidetud. MGA algoritmi plokkskeem on näidatud joonisel fig. üks.

    Uuringu läbiviimisel aktsepteeriti globaalse ekstreemumi piirkonna otsimisel objektiivse funktsiooni arvutuste arvu piirangut (Nrf = 16 000) ja tingimust üleminekuks kohalikule optimeerimisalgoritmile, mis põhineb Nelder -Mead meetodil (pärast põhiline geneetiline algoritm on sooritanud 75% Nrf toimingutest).

    6. Tulemused. Masinõppe algoritmi abil läbi viidud uurimistöö tulemusena

    Tabel 1

    Dokumentide ja päringute arv testkogudes

    Testikogumi nimi Allsüsteemi nimi Taotluste arv Dokumentide arv

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

    LETOR 3.0 Gov04td 75 74146

    LETOR 3.0 Gov04np 75 73834

    LETOR 3.0 Gov04hp 75 74409

    Riis. 1. Hübriidse MVL algoritmi plokkskeem, mis põhineb geneetilistel algoritmidel ja Nelder-Meadi meetodil

    LTR-MGA järjestamiseks saadakse paremusjärjestuse funktsiooni jaoks WC * kaalude vektor. Lisaks hinnati LETOYA testikogumi andmete põhjal paremusjärjestuse kvaliteeti, mille jaoks arvutati kvaliteedimõõdikud. Pingerea kvaliteedi diskreetne mõõdik [e -post kaitstud] hindab süsteemi vastuse esimese n dokumendi kvaliteeti. Reitingu kvaliteedi hindamiseks on üldtunnustatud mõõdikud järgmised [e -post kaitstud], [e -post kaitstud] ja [e -post kaitstud] Mõõdiku muutuste üksikasjalikumaks kaalumiseks sõltuvalt väärtustest [e -post kaitstud] kõigi n puhul 1 kuni 10. Arendatud algoritmi tõhususe võrdlemiseks olemasolevate lahendustega viidi läbi võrdlev analüüs, kasutades LETOIA 3.0 kogudes esitatud järjestamisalgoritme. NDCG mõõdiku katsekogude TB2003 ja TB2004 algoritmide käitamise tulemused on näidatud joonisel fig. 2. Tulemused näitavad, et LTR-MGA algoritm ületab testialgoritme, kusjuures kõrgeimad väärtused on

    on mõeldud [e -post kaitstud](esimese dokumendi tasemel). LTR-MGA algoritmi paremus tuleneb asjaolust, et erinevalt katsetes käsitletud testide paremusjärjestuse funktsioonidest kasutatakse paremusjärjestuse funktsiooni optimeerimiseks kavandatud lähenemisviisis eesmärgifunktsioonina just NDCG mõõdikut.

    Paremusjärjestuse kvaliteedi hindamiseks kavandatud LTR-MGA algoritmi kasutamisel arvutati otsingutulemustes dokumentide järjestamise kvaliteedimõõdikute väärtused (joonis 3). Paremusjärjestuse tulemuste võrdlus (tabel 2), kui kasutatakse põhilist paremusjärjestuse funktsiooni, põhilist LTR-GA algoritmi ja muudetud LTR-MGA algoritmi, näitab viimase eelist.

    Lisaks hinnati uuringus MO paremusjärjestuseks kuluvat aega. See on vajalik kinnitamaks, et kavandatav LTR-MGA meetod on selle näitaja osas parem kui traditsiooniliste meetodite kasutamine.

    Riis. 2. Masinõppe algoritmide võrdlus järjestamiseks

    testikogude NDCG mõõdiku järgi: vasakul - andmekogum Gov03td, paremal - andmekogum Gov04td

    Riis. 3. Paremusjärjestuse põhivalemi ja õppimisalgoritmide LTR-GA ja LTR-MGA paremusjärjestuse kvaliteedimõõdikute hindamine

    Kvaliteedimõõdikute paigutamine erinevatele masinõppe algoritmidele

    tabel 2

    Edetabeli kvaliteedi mõõdik Põhiline paremusjärjestuse funktsioon LTR-GA LTR-MGA Mõõdiku väärtuse suurendamine,%

    Täpsus 0,201 0,251 0,267 26,81

    [e -post kaitstud](esimesed 5 dokumenti) 0,149 0,31 0,339 90,47

    [e -post kaitstud](esimesed 10 dokumenti) 0,265 0,342 0,362 29,14

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

    Täielikkus 0,524 0,542 0,732 39,03

    * Vastava mõõdiku parimad väärtused on esile tõstetud halliga

    onnogo geneetiline algoritm (LTA-OL). Algoritmide LTY-OL ja LTY-MOL täitmisele kulunud aja võrdlemise tulemused on toodud tabelis. 3.

    7. Järeldus. Seega on läbiviidud uuringud näidanud, et pakutud lähenemisviisi kasutamisel suurenevad ISS-is käsitletavate paremusjärjestuse mõõdikute väärtused (keskmiselt 19,55% võrreldes LTS-OL algoritmiga). See kinnitab, et LITA-MOL töötab korrektselt ja parandab oluliselt paremusjärjestuse funktsiooni, teisisõnu lahendab see edukalt optimeerimisprobleemi. Modifitseeritud algoritmi kasutamine

    Kohaliku optimeerimismeetodi rakendamise ja eesmärgifunktsiooni arvutuste arvu piirangute tõttu vähenes masinõppe aeg (keskmiselt 17,71% võrreldes traditsioonilise geneetilise algoritmi LCHAOL kasutamisega).

    Välja töötatud masinõppe algoritmi LТY-MOL järjestamiseks saab kasutada ISS-is, mis kasutab lihtsate järjestamisfunktsioonide kombinatsioonil põhinevat pingerea mudelit. Siiski tuleks arvesse võtta mõningaid piiranguid kavandatud lähenemisviisi rakendamisel. Põhineb

    Masinõppe edetabeli täitmisaja hindamine sõltuvalt koolitusvalimi suurusest

    Tabel 3

    Tekstidokumendi suurus

    LTR-GA täitmise aeg

    LTR-MGA Runtime

    Täitmisaja lühendamine,%

    Keskmine väärtus

    * Vastava testkogu suuruse parimad väärtused on esile tõstetud halliga

    saadud tulemustest selgus, et pärast MO -d on suurim tõus järjestuse kvaliteedimõõdikus, mille väärtus võeti eesmärgifunktsiooniks. Samal ajal ei pruugi ülejäänud mõõdikud oluliselt paraneda ja mõnel juhul isegi nende väärtusi halvendada. Ühe võimaliku lähenemisviisina selle puuduse kõrvaldamiseks tehakse ettepanek lahendada optimeerimisprobleem mitme kriteeriumina: parandada ühtlaselt mitut otsingutulemuste paremusjärjestuse mõõdikut, selle asemel, et seda optimeerida. Lisaks on edasistes uuringutes kavas välja töötada metoodika objektiivse funktsiooni konstrueerimiseks, mis põhineb peamiste paremusjärjestuse kvaliteedimõõdikute lineaarsel konvolutsioonil, et parandada teabe otsimise protsessi.

    Bibliograafiline nimekiri

    1. Tie-Yan Liu. Teabe otsimise järjekoha õppimine // Ajakirjade alused ja teabeotsingu suundumused. Kd. 3, number 3. märts 2009. Lk 225-331.

    2. Christopher J. C. Burges, Tal Shaked, Erin Renshaw. Õppimine reastama, kasutades gradiendi laskumist // Proceeding ICML "05 22. rahvusvahelise masinõppe konverentsi toimetised. 2005. Lk 89-96.

    3. Semenikhin, SV Masinaõppe lähenemisviiside uurimine dokumentide järjestamiseks geneetilistel algoritmidel põhineva otsingusüsteemi abil / SV Semenikhin // Noor Venemaa: arenenud tehnoloogiad tööstuses. - 2013. - nr 2. - lk 82 - 85.

    4. Mitmekriteeriumiline optimeerimine, mis põhineb geneetilistel algoritmidel juhtimissüsteemide sünteesis: monograafia. / L. A. Denisova. - Omsk: OmSTU kirjastus, 2014.- 170 lk. -ISBN 978-5-8149-1822-2.

    5. Denisova, L. A. Juhtimissüsteemi parameetrilise sünteesi automatiseerimine geneetilise algoritmi abil / L. A. Denisova, V. A. Meshcheryakov // Automatiseerimine tööstuses. - 2012. - nr 7. - Lk 34 - 38.

    6. Huber, Peter J. Asukoha parameetri robustne hindamine // Statistika Annals. - 1964. - nr 53. - lk 73-101.

    7. Semenikhin, S. V. Multikriteeriumide optimeerimisel ja geneetilistel algoritmidel põhinev teabeotsingu automatiseerimine / S. V. Semenikhin, L. A. Denisova // Süsteemide, mehhanismide ja masinate dünaamika. - 2014. - nr 3. - Lk 224 - 227.

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

    9. Ageev, MS RMIP ametlikud mõõdikud "2004 / MS Ageev, IE Kuralenok // II Venemaa seminar teabeotsingumeetodite hindamise kohta (ROMIP 2004), Pushchino, 2004: tr .; Ed. S. Nekrest'yanova. - Peterburi: Peterburi Riikliku Ülikooli keemia uurimisinstituut - P. 142-150.

    10. J. A. Nelder, R. Mead, Funktsioonide minimeerimise simpleksmeetod, The Computer Journal 7 (1965). 308-313.

    Svjatoslav Vitaljevitš SEMENIKHIN, automaatse andmetöötluse ja juhtimissüsteemide osakonna aspirant. Kirjavahetuse aadress: [e -post kaitstud] DENISOVA Ljudmila Albertovna, tehnikateaduste doktor, automatiseeritud infotöötluse ja juhtimissüsteemide osakonna dotsent. Kirjavahetuse aadress: [e -post kaitstud]