Önceden girdi değişkenlerinin hangi alt kümelerinin çıktı değişkenini etkilediğini bilmekle birlikte, farklı yöntemler kullanarak ilgili özellikleri saptamaya çalışarak bir dizi yapay test çalıştırmanız gerekir.
İyi hileler, farklı dağılımlara sahip bir dizi rasgele giriş değişkeni tutmak ve özellik seçiminizin gerçekten de onları alakalı olmayan olarak etiketlemesini sağlamak olacaktır.
Başka bir hile, satırlara izin verdikten sonra ilgili olarak etiketlenen değişkenlerin ilgili olarak sınıflandırıldığından emin olmak olacaktır.
Yukarıda belirtilenler hem filtre hem de ambalaj yaklaşımları için geçerlidir.
Ayrıca, ayrı ayrı (tek tek) değişkenler alındığında hedef üzerinde herhangi bir etki göstermediği, ancak birlikte alındığında güçlü bir bağımlılık ortaya çıkardığı durumlarda da ele aldığınızdan emin olun. Örnek, iyi bilinen bir XOR sorunu olabilir (Python koduna bakın):
import numpy as np
import matplotlib.pyplot as plt
from sklearn.feature_selection import f_regression, mutual_info_regression,mutual_info_classif
x=np.random.randn(5000,3)
y=np.where(np.logical_xor(x[:,0]>0,x[:,1]>0),1,0)
plt.scatter(x[y==1,0],x[y==1,1],c='r',marker='x')
plt.scatter(x[y==0,0],x[y==0,1],c='b',marker='o')
plt.show()
print(mutual_info_classif(x, y))
Çıktı:
[0. 0. 0.00429746]
Bu nedenle, muhtemelen güçlü (ancak tek değişkenli) filtreleme yöntemi (çıkış ve giriş değişkenleri arasındaki karşılıklı bilgilerin hesaplanması) veri kümesindeki hiçbir ilişkiyi tespit edememiştir. Oysa bunun% 100 bağımlılık olduğunu biliyoruz ve X'i% 100 doğrulukla Y'yi tahmin edebiliriz.
Özellik seçimi yöntemleri için bir tür kriter oluşturmak iyi bir fikir olabilir, herkes katılmak ister mi?