Reeșantionarea | 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.

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.

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.