Sıfıra yakın varyanslı yordayıcıları kaldır
Videoda gördüğün gibi, sonraki egzersizler için blood-brain veri kümesini kullanacaksın. Bu, bir dizi biyokimyasal bileşik için aşağıdaki değeri tahmin etmeyi amaçlayan bir biyokimyasal veri kümesidir:
log((beyindeki bileşik derişimi) /
(kandaki bileşik derişimi))
Bu, bileşiğin kan-beyin bariyerini aşma yeteneğine ilişkin sayısal bir ölçü verir ve bu bariyerin biyolojik özelliklerini anlamak için faydalıdır.
Bu veri kümesinin ilginç yönlerinden biri, birçok değişken içermesi ve bunların çoğunun aşırı düşük varyansa sahip olmasıdır. Bu, değişkenlerin çoğunlukla tek bir değerden (ör. sıfır) oluştuğu için bu değişkenlerde çok az bilgi olduğu anlamına gelir.
Neyse ki, modelleme sırasında zaman kazandırmak için bu tür değişkenleri kaldırmaya yarayan nearZeroVar() adlı bir yardımcı işlev caret içinde bulunur.
nearZeroVar() veri x'i alır; en yaygın değerin ikinci en yaygın değere oranına, freqCut, ve toplam örnek sayısı içindeki ayırt edici değerlerin yüzdesine, uniqueCut, bakar. Varsayılan olarak caret, oldukça temkinli sayılabilecek freqCut = 19 ve uniqueCut = 10 kullanır. Ben biraz daha agresif olmayı seviyorum ve nearZeroVar() çağrısında freqCut = 2 ve uniqueCut = 20 kullanıyorum.
Bu egzersiz
R ile caret kullanarak Machine Learning
kursunun bir parçasıdırEgzersiz talimatları
bloodbrain_x ve bloodbrain_y çalışma alanında yüklü.
- Kan-beyin veri kümesinde
nearZeroVar()çalıştırarak sıfıra yakın varyanslı yordayıcıları belirle. Sonucuremove_colsadlı bir nesne olarak sakla.nearZeroVar()çağrısındafreqCut = 2veuniqueCut = 20kullan. names()ilebloodbrain_x'in tüm sütun adlarını içeren bir vektör oluştur. Bunaall_colsadını ver.- Sıfıra yakın varyanslı değişkenler kaldırılmış yeni bir veri çerçevesi oluştur ve adına
bloodbrain_x_smallde. Tutmak istediğin (yani kaldırmak istemediğin) sütun adlarını ayırmak içinsetdiff()kullan.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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(___, ___)]