Anda harus menjalankan serangkaian tes buatan, mencoba mendeteksi fitur yang relevan menggunakan metode yang berbeda sambil mengetahui sebelumnya subset variabel input mana yang mempengaruhi variabel output.
Trik yang baik adalah menjaga satu set variabel input acak dengan distribusi yang berbeda dan pastikan pemilihan fitur Anda juga menandai mereka sebagai tidak relevan.
Trik lain adalah memastikan bahwa setelah mengubah baris, variabel yang ditandai sebagai relevan berhenti diklasifikasikan sebagai relevan.
Di atas kata berlaku untuk kedua pendekatan filter dan pembungkus.
Pastikan juga untuk menangani kasus ketika jika diambil secara terpisah (satu per satu) variabel tidak menunjukkan pengaruh pada target, tetapi ketika diambil secara bersama-sama mengungkapkan ketergantungan yang kuat. Contoh akan menjadi masalah XOR yang terkenal (lihat kode Python):
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))
Keluaran:
[0. 0. 0,00429746]
Jadi, mungkin metode penyaringan yang kuat (tetapi univariat) (komputasi informasi timbal balik antara variabel keluaran dan input) tidak dapat mendeteksi hubungan apa pun dalam dataset. Padahal kita tahu pasti itu adalah ketergantungan 100% dan kita bisa memprediksi Y dengan akurasi 100% mengetahui X.
Ide bagus adalah membuat semacam tolok ukur untuk metode pemilihan fitur, apakah ada yang mau berpartisipasi?