Benchmarking | R-BLOGGERS

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(Acest articol a fost publicat pentru prima dată pe mlr-orgși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)


Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.

Vom trece dincolo de reeșantionarea cursanților singuri. Vom învăța cum să comparăm un număr mare de modele diferite folosind evaluarea comparativă. În acest exercițiu, nu vă vom arăta cum să acordați un elev. În schimb, vom compara studenții identici cu diferite hiperparametre care sunt setate manual. În special, vom învăța cum să stabilim instanțe comparative în mlr3.

Creăm sarcina în ceea ce privește exercițiul de eșantionare: din nou, ne facem din calul nostru de lucru: setul de date de credit german.

library(mlr3verse)
Lade nötiges Paket: mlr3
task = tsk("german_credit")
set.seed(20220801)

Vom compara o serie de modele KNN diferite de la un de la 3 până la 30. Mai mult, dorim să evaluăm performanța unei regresii logistice.

Creați cursanții

Creați un elev de regresie logistică și mulți cursanți KNN. Ar trebui să acoperiți toate KNN -urile cu un Între 3 și 30 de ani. Salvați toți cursanții într -o listă. Dă -i cursanților KNN un adecvat id asta reflectă .

Afișați Sugestia 1:

Folosiți lapply funcție sau o buclă pentru a crea lista cursanților cu între 3 și 30. Nu uitați să includeți și elevul de regresie logistică din lista dvs. ( append Funcția ar putea fi utilă aici pentru a extinde o listă creată). lrn Funcția are un argument id care poate fi folosit pentru a schimba numele cursantului (aici, ar trebui să le oferiți cursanților KNN un adecvat id care reflectă valoarea lor de pentru a putea distinge cursanții).

Afișați Sugestia 2:

Pentru a crea o listă de cursanți KNN, puteți utiliza acest șablon: lapply(..., function(i) lrn("classif.kknn", k = i, id = paste0("classif.knn", i))

Creați eșantionarea

Creați o eșantionare încrucișată de 4 ori. Creați o listă care conține doar această eșantionare (acest lucru este necesar mai târziu pentru benchmark_grid funcţie).

Show Sugest:

Consultați carcasa de utilizare anterioară de eșantionare.

Creați un design de evaluare comparativă

Pentru a vă proiecta experimentul de referință constând din sarcini, cursanți și tehnica de eșantionare, puteți utiliza benchmark_grid Funcție din mlr3. Aici, vom folosi o singură sarcină și o tehnică de eșantionare, dar mai mulți studenți. Utilizați sarcina creată anterior (creditul german), elevii (lista multor studenți KNN și un singur cursant de regresie logistică) și reeșantionarea (CV -ul de 4 ori) ca intrare.

Afișați Sugestia 1:

De asemenea, asigurați -vă că sarcina este inclusă într -o listă ca argumente ale benchmark_grid Funcția necesită liste ca intrare.

Afișați Sugestia 2:

benchmark_grid(...

Rulați punctul de referință

Acum mai trebuie să rulați toate experimentele specificate în proiectare. Faceți acest lucru folosind benchmark funcţie. Acest lucru poate dura ceva timp. (Încă mai puțin de un minut.) Asigurați -vă că stocați punctul de referință într -un obiect nou numit bmr Pe măsură ce veți reutiliza și inspecta rezultatele de referință în exercițiile ulterioare.

Afișați Sugestia 1:

Evaluează punctul de referință

Alegeți două valori adecvate pentru a evalua performanța diferiților cursanți pe sarcină. Calculați aceste valori și vizualizați, de asemenea, cel puțin una dintre ele folosind autoplot funcţie.

Afișați Sugestia 1:

Obiectul de referință stocat anterior are o metodă $aggregate(...) la fel ca obiectele create cu resample Funcție din cazul de utilizare anterioară.

Afișați Sugestia 2:

autoplot(..., measure = msr(...))

Interpretați rezultatele

Interpretează complotul. Care Pare să funcționeze bine, având în vedere sarcina? Ați prefera o regresie logistică față de un elev KNN? ::: {.content-ascuns decât dacă-meta = „params.showsolution”} ::: {.callout-note colapse = „true”} ### Soluție a de aprox. 12 pare să funcționeze cel mai bine (în ceea ce privește precizia). Un prea mic Underfits, o mare supraficit. Neștiind adevăratul o regresie logistică pare de preferat. Dacă este prea mic, performanța medie a regresiei logistice este mult mai bună. Dacă Este prea mare, variația performanței este mult mai mare în comparație cu regresia logistică. Cu toate acestea, un KNN un optim Are o precizie constant ridicată.

::: ::: # Extra: paralelizează -ți eforturile

Benchmarking -ul este În mod embaras paralel. Asta înseamnă că este foarte ușor să rulați experimentele de evaluare comparativă pe diferite mașini sau nuclee. În multe cazuri (nu toate!), Acest lucru poate accelera semnificativ timpul de calcul. Vă recomandăm să faceți acest lucru folosind future::plan Funcționează la paralellizare mlr3 Repere de referință.

Afișați Sugestia 1:

Trebuie să utilizați plan Funcționează de două ori. O dată pentru a configura un multisessionapoi întoarce -te la parallel.

Afișați Sugestia 2:
library(future)
plan(multisession)
# your code                     
plan(sequential)

Am învățat cum să stabilim punct de referință mlr3. În timp ce ne -am uitat doar la o singură sarcină și la o singură eșantionare, procedura se aplică cu ușurință pentru repere mai complexe, cu multe sarcini. În plus, am învățat cum să înțelegem rezultatele de referință. Nu în ultimul rând, este posibil să fi paralelizat punctul de referință dacă mai ai mai rămas ceva timp.

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.