Sie benötigen keine Domänenkenntnisse (das Wissen darüber, was Ihre Daten bedeuten ), um Features zu entwickeln (aussagekräftigere Möglichkeiten zur Gestaltung Ihrer Daten zu finden).
Wie Tu N. erklärte , können Sie "schnelle und schmutzige" Kombinationen von Funktionen finden, die ziemlich einfach hilfreich sein könnten. Ausgehend von einer Ausgabe und einem einzelnen Merkmal können Sie die folgenden Transformationen durchführen: . Eine schnelle Überprüfung der Nützlichkeit der Transformation ist, wenn die Korrelation zwischen höher ist als die Korrelation zwischen .x x ' ∈ { e x , log ( x ) , x 2 , x 3 , tanh ( x ) } { y , x ' } { y , x }yxx′∈ { ex, log( x ) , x2, x3, tanh( x ) }{ y, x′}{y,x}
Warnung zur Korrelation: Die Korrelation zeigt nicht alles an. Abhängig vom verwendeten Modell (stark nichtlinear wie NN oder RF) und der Interaktion mit anderen Variablen kann eine Änderung der Korrelation nichts bedeuten.
Wenn Sie jedoch ein einfaches lineares Modell wie die logistische Regression verwenden, ist dies ein OK-Indikator für die Leistung. Der beste Weg , eine solche Transformation, jedoch zu bewerten, wie von dem bekannten Fokhruz Zaman , wäre ein Modell mit und ohne Ihre transformierten Merkmals zu bauen, und sehen , wie die Validierungsfehler (auf der Kreuzvalidierung Falten) entwickelt.
Auf diese Weise lassen sich Transformationen mit nur einem Merkmal relativ leicht erkennen. Diese beziehen sich auf eine Vielzahl von Daten, bei denen eine aussagekräftigere Beziehung zwischen Ihrer Eingabe und Ihrer Ausgabe in einem anderen Maßstab bestehen kann. Zum Beispiel scheint die Beziehung zwischen Einkommen und "Glück" logarithmisch zu sein, aber Sie würden niemals das Protokoll des Einkommens eines Teilnehmers direkt aufzeichnen.
Das Finden von Merkmalskombinationen ist schwieriger. Wenn Sie zunächst jede Addition von 2 Features testen möchten und über Features verfügen, müssen Sie eine Reihenfolge von Transformationen testen. Um solche Transformationen zu finden, können Sie ein nichtlineares Modell (wie z. B. NN oder RF) auf das Problem anwenden und versuchen, herauszufinden, was es gerade lernt. Wenn Sie feststellen können, was eine Zwischenebene in einem NN gerade tut, können Sie das Ergebnis vorberechnen und als neues Feature hinzufügen. Es muss nicht erneut berechnet werden und wird wahrscheinlich versuchen, etwas Neues zu lernen.D 2DD2
Es kann schwierig sein, die interne Darstellung eines NN zu interpretieren oder die Wichtigkeit von Features in einer zufälligen Gesamtstruktur zu interpretieren. Eine einfachere und wahrscheinlich geeignetere Methode für diesen Zweck wäre Boosting mit Entscheidungsbäumen. Es gibt eine Menge Bibliotheken, die Boosting implementieren, und wenn Sie an einem Kaggle-Wettbewerb interessiert sind, wie Ihr Beitrag zu implizieren scheint , wird XGBoost anscheinend von vielen Teilnehmern verwendet, sodass Sie möglicherweise einige Hilfe / Tutorials zu dem finden, was ich beschreiben werde.
Führen Sie zunächst Ihren Boosting-Algorithmus aus, indem Sie nur Stümpfe und einstufige Entscheidungsbäume verwenden. Stümpfe sind sehr schwach, aber Boosting macht es zu einem vernünftigen Modell. Dies wird als Basis dienen. Abhängig von der von Ihnen verwendeten Bibliothek sollten Sie in der Lage sein, die am häufigsten verwendeten Funktionen recht einfach anzuzeigen, und Sie sollten sie mit der Antwort abgleichen (oder ein Histogramm erstellen, wenn die Antwort kategorisch ist), um ein bestimmtes Muster zu identifizieren. Dies könnte Ihnen eine Vorstellung davon geben, was eine gute Einzelmerkmalumwandlung wäre.
Führen Sie als Nächstes den Boosting-Algorithmus mit Entscheidungsbäumen auf zwei Ebenen aus. Dieses Modell ist viel komplexer als das vorherige. Wenn zwei Variablen zusammengenommen mehr Leistung haben als einzeln genommen, sollte dieses Modell Ihre vorherige übertreffen (wiederum nicht in Bezug auf Trainingsfehler, sondern auf Validierungsfehler!). Auf dieser Grundlage sollten Sie in der Lage sein, zu extrahieren, welche Variablen häufig zusammen verwendet werden, und dies sollte Sie zu potenziellen Transformationen mit mehreren Features führen.
Zu verwandten Materialien würde ich die folgenden Videos empfehlen, da sie leicht zu verfolgen sind
Können Sie uns bitte anhand konkreter Beispiele Ihre folgende Aussage näher erläutern?
Ich bin mir nicht sicher, wie Sie Feature-Engineering durchführen können, ohne Ihr Daten-Set und die angegebenen Attribute zu verstehen !!
Tabellarische Daten werden als Beobachtungen oder Instanzen (Zeilen) beschrieben, die aus Variablen oder Attributen (Spalten) bestehen. Ein Attribut kann ein Feature sein.
"Die Idee eines Merkmals, das von einem Attribut getrennt ist, ist im Kontext eines Problems sinnvoller. Ein Merkmal ist ein Attribut, das für Ihr Problem nützlich oder sinnvoll ist. Es ist ein wichtiger Teil einer Beobachtung zum Erlernen der Struktur von das Problem, das modelliert wird ... ... ...
In der Computersicht ist ein Bild eine Beobachtung, aber ein Merkmal kann eine Linie im Bild sein.
Bei der Verarbeitung in natürlicher Sprache kann ein Dokument oder ein Tweet eine Beobachtung sein, und eine Wort- oder Phrasenanzahl kann ein Merkmal sein.
Bei der Spracherkennung kann eine Äußerung eine Beobachtung sein, ein Merkmal kann jedoch ein einzelnes Wort oder ein Phonem sein. "
Bitte besuchen Sie die folgende URL für weitere Informationen:
Entdecken Sie Feature Engineering, wie Sie Features entwickeln und wie Sie gut damit umgehen
quelle