(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.
Veți învăța cum să estimați performanța modelului cu mlr3
Utilizarea tehnicilor de eșantionare, cum ar fi validarea încrucișată de 5 ori. În plus, veți compara modelul K-NN cu un model de regresie logistică.
Lucrăm cu datele de credit germane. Puteți crea manual corespunzător mlr3
sarcină așa cum am făcut înainte sau folosim o sarcină predefinită, care este deja inclusă în mlr3
pachet (puteți să vă uitați la ieșirea din as.data.table(mlr_tasks)
Pentru a vedea ce alte sarcini predefinite care pot fi utilizate pentru a juca în jur sunt incluse în mlr3
pachet).
library(mlr3verse)
Loading required package: mlr3
task = tsk("german_credit") task
(1000 x 21): German Credit * Target: credit_risk * Properties: twoclass * Features (20): - fct (14): credit_history, employment_duration, foreign_worker, housing, job, other_debtors, other_installment_plans, people_liable, personal_status_sex, property, purpose, savings, status, telephone - int (3): age, amount, duration - ord (3): installment_rate, number_credits, present_residence
task$positive # (check the positive class)
Mai întâi creăm două mlr3
studenți, o regresie logistică și un elev KNN. Apoi comparăm performanța lor prin reeșantionare.
Creați cursanții
Creați un elev de regresie logistică (stocați -l ca un obiect R numit log_reg
) și Knn Learner cu (stocați -l ca un obiect R numit
knn
)
Afișați Sugestia 1:
Verifica as.data.table(mlr_learners)
pentru a găsi elevul corespunzător.
Afișați Sugestia 2:
Asigurați -vă că aveți kknn
pachet instalat.
Configurați o instanță de eșantionare
Folosiți mlr3
Pentru a configura o instanță de eșantionare și a o stoca ca un obiect R numit cv5
. Aici, ne propunem să validare încrucișată de 5 ori. Un tabel cu posibile tehnici de eșantionare implementate în mlr3
poate fi arătat privind as.data.table(mlr_resamplings)
.
Afișați Sugestia 1:
Uită -te la masa returnată as.data.table(mlr_resamplings)
și folosiți rsmp
Funcție pentru a configura o instanță de validare încrucișată de 5 ori. Stocați rezultatul rsmp
Funcție într -un obiect R numit cv5
.
Afișați Sugestia 2:
rsmp("cv")
În mod implicit, stabilește o instanță de validare încrucișată de 10 ori. Numărul de pliuri poate fi setat folosind un argument suplimentar (consultați params
coloană din as.data.table(mlr_resamplings)
)
Rulați reeșantionarea
După ce a creat o instanță de eșantionare, folosiți -o pentru a aplica tehnica de eșantionare aleasă pentru ambii studenți create anterior.
Afișați Sugestia 1:
Trebuie să furnizați sarcina, elevul și instanța de eșantionare creată anterior ca argumente pentru resample
funcţie. Vedea ?resample
Pentru detalii și exemple suplimentare.
Afișați Sugestia 2:
Ingredientele cheie pentru resample()
sunt o sarcină (creată de tsk()
), un elev (creat de lrn()
) și o strategie de eșantionare (creată de rsmp()
), de exemplu,
resample(task = task, learner = log_reg, resampling = cv5)
Evaluare
Calculați precizia clasificării încrucișate a ambelor modele. Care elev a avut performanțe mai bune?
Afișați Sugestia 1:
Utilizare msr("classif.acc")
și aggregate
Metoda obiectului de eșantionare.
Afișați Sugestia 2:
res_knn$aggregate(msr(...))
Pentru a obține precizia clasificării medie pe toate pliurile.
Acum putem aplica diferite metode de eșantionare pentru a estima performanța diferitelor cursanți și pentru a le compara în mod corect. Acum am învățat cum să obținem o estimare mai bună (în ceea ce privește variația) a performanței modelului nostru, în loc să facem o simplă despărțire de tren și test. Acest lucru ne permite să comparăm în mod corect diferiți cursanți.