ÎncepețiÎncepe gratuit

Elimină predictori cu varianță aproape zero

Așa cum ai văzut în videoclip, pentru următoarea serie de exerciții vei folosi setul de date blood-brain. Acesta este un set de date biochimice în care sarcina este să prezici următoarea valoare pentru un set de compuși biochimici:

log((concentration of compound in brain) /
      (concentration of compound in blood))

Această valoare oferă o măsură cantitativă a capacității compusului de a traversa bariera hemato-encefalică și este utilă pentru înțelegerea proprietăților biologice ale acesteia.

Un aspect interesant al acestui set de date este că include multe variabile, iar multe dintre ele au varianțe extrem de mici. Asta înseamnă că aceste variabile conțin foarte puține informații, deoarece sunt formate în mare parte dintr-o singură valoare (de exemplu, zero).

Din fericire, caret include o funcție utilitară numită nearZeroVar() pentru eliminarea unor astfel de variabile, ceea ce reduce timpul de modelare.

nearZeroVar() primește datele x, apoi analizează raportul dintre cea mai frecventă valoare și a doua cea mai frecventă valoare, freqCut, și procentul de valori distincte raportat la numărul total de eșantioane, uniqueCut. În mod implicit, caret folosește freqCut = 19 și uniqueCut = 10, ceea ce este destul de conservator. Prefer o abordare puțin mai agresivă și folosesc freqCut = 2 și uniqueCut = 20 atunci când apelez nearZeroVar().

Acest exercițiu face parte din cursul

Machine Learning cu caret în R

Vezi cursul

Instrucțiuni pentru exercițiu

bloodbrain_x și bloodbrain_y sunt încărcate în spațiul tău de lucru.

  • Identifică predictorii cu varianță aproape zero rulând nearZeroVar() pe setul de date blood-brain. Stochează rezultatul într-un obiect numit remove_cols. Folosește freqCut = 2 și uniqueCut = 20 în apelul la nearZeroVar().
  • Folosește names() pentru a crea un vector cu toate numele coloanelor din bloodbrain_x. Numește-l all_cols.
  • Creează un nou data frame numit bloodbrain_x_small din care să elimini variabilele cu varianță aproape zero. Folosește setdiff() pentru a izola numele coloanelor pe care dorești să le păstrezi (adică pe cele pe care nu vrei să le elimini).

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# Identify near zero variance predictors: remove_cols
remove_cols <- nearZeroVar(___, names = TRUE, 
                           freqCut = ___, uniqueCut = ___)

# Get all column names from bloodbrain_x: all_cols


# Remove from data: bloodbrain_x_small
bloodbrain_x_small <- bloodbrain_x[ , setdiff(___, ___)]
Editează și rulează codul