Ich habe einige Beiträge zur Funktionsauswahl und Kreuzvalidierung gelesen, habe aber noch Fragen zum richtigen Verfahren.
Angenommen, ich habe einen Datensatz mit 10 Funktionen und möchte die besten Funktionen auswählen. Angenommen, ich verwende einen Klassifikator für den nächsten Nachbarn. Kann ich mithilfe der Kreuzvalidierung eine umfassende Suche durchführen, um die Fehlerrate als Leitfaden für die Auswahl der besten Funktionen zu schätzen? So etwas wie der folgende Pseudocode
for i=1:( 2^10 -1)
error(i)= crossval(1-nn, selected_fetures(i))
end
i=find(erro(i)==min(error(i));
selected_fetures= selected_features(i);
Ich versuche in diesem Pseudocode zu erklären, dass ich die Kreuzvalidierung für alle möglichen Merkmalskombinationen durchführe und die Kombination auswähle, die den minimalen Fehler ergibt.
Ich denke, dass dieses Verfahren korrekt ist, da ich eine umfassende Suche durchführe. Die Auswahl der Funktionen basierte nicht auf dem gesamten Datensatz, sondern auf dem durchschnittlichen Fehler auf jeder Partition. Überpasse ich das Modell mit einer solchen Funktionsauswahl?