Tipps & Tricks

Effektive Merkmalsauswahl: Fünf nützliche Python-Skripte für Ihre Projekte

8 min Lesezeit
Effektive Merkmalsauswahl: Fünf nützliche Python-Skripte für Ihre Projekte

Als Praktiker im Bereich des maschinellen Lernens wissen Sie, dass die Merkmalsauswahl eine wichtige, aber zeitaufwendige Aufgabe ist. Es gilt, die Merkmale zu identifizieren, die tatsächlich zur Modellleistung beitragen, redundante Variablen zu entfernen, Multikollinearität zu erkennen, störende Merkmale herauszufiltern und die optimale Merkmalsauswahl zu finden. Für jede Auswahlmethode testen Sie verschiedene Schwellenwerte, vergleichen die Ergebnisse und verfolgen, was funktioniert.

Diese Herausforderung wird größer, je mehr Merkmale Sie haben. Bei Hunderten von generierten Merkmalen benötigen Sie systematische Ansätze, um die Merkmalsbedeutung zu bewerten, Redundanzen zu beseitigen und die besten Merkmale auszuwählen. In diesem Artikel werden fünf Python-Skripte vorgestellt, die entwickelt wurden, um die effektivsten Techniken zur Merkmalsauswahl zu automatisieren. Dazu gehören auch Effiziente Python-Skripte zur Automatisierung der explorativen Datenanalyse.

Die Skripte sind auf GitHub verfügbar.

1. Filtern von konstanten Merkmalen mit Varianzschwellen

Das Problem

Merkmale mit niedriger oder null Varianz liefern kaum bis gar keine Informationen für Vorhersagen. Ein Merkmal, das über alle Proben konstant oder nahezu konstant ist, kann nicht zwischen verschiedenen Zielklassen unterscheiden. Die manuelle Identifizierung dieser Merkmale erfordert die Berechnung der Varianz für jede Spalte, das Festlegen geeigneter Schwellenwerte und den Umgang mit Randfällen wie binären Merkmalen oder Merkmalen mit unterschiedlichen Skalen.

Was das Skript macht

Es identifiziert und entfernt Merkmale mit niedriger Varianz basierend auf konfigurierbaren Schwellenwerten. Es behandelt sowohl kontinuierliche als auch binäre Merkmale angemessen, normalisiert die Varianzberechnungen für einen fairen Vergleich über verschiedene Skalen und bietet detaillierte Berichte, die zeigen, welche Merkmale entfernt wurden und warum.

Wie es funktioniert

  • Das Skript berechnet die Varianz für jedes Merkmal und wendet unterschiedliche Strategien basierend auf dem Merkmaltyp an.
  • Für kontinuierliche Merkmale wird die Standardvarianz berechnet und kann optional durch den Bereich des Merkmals normalisiert werden, um die Schwellenwerte vergleichbar zu machen.
  • Für binäre Merkmale wird der Anteil der Minderheitsklasse berechnet, da die Varianz in binären Merkmalen mit dem Klassenungleichgewicht zusammenhängt.

Merkmale, die unterhalb des Schwellenwerts liegen, werden zur Entfernung markiert. Das Skript führt eine Zuordnung der entfernten Merkmale und ihrer Varianzwerte zur Gewährleistung der Transparenz.

Holen Sie sich das Skript zur Merkmalsauswahl basierend auf Varianzschwellen

2. Eliminierung redundanter Merkmale durch Korrelationsanalyse

Das Problem

Hoch korrelierte Merkmale sind redundant und können in linearen Modellen zu Multikollinearitätsproblemen führen. Wenn zwei Merkmale eine hohe Korrelation aufweisen, erhöht das Beibehalten beider die Dimensionalität, ohne zusätzliche Informationen hinzuzufügen. Bei Hunderten von Merkmalen erfordert die Identifizierung aller korrelierten Paare, die Entscheidung, welche beibehalten werden sollen, und die Gewährleistung, dass die Merkmale, die am stärksten mit dem Ziel korreliert sind, erhalten bleiben, eine systematische Analyse.

Was das Skript macht

Es identifiziert hoch korrelierte Merkmals-Paare mithilfe der Pearson-Korrelation für numerische Merkmale und Cramérs V für kategoriale Merkmale. Für jedes korrelierte Paar wählt es automatisch aus, welches Merkmal basierend auf der Korrelation mit der Zielvariablen beibehalten werden soll. Redundante Merkmale werden entfernt, während die prädiktive Kraft maximiert wird. Es generiert Korrelationsheatmaps und detaillierte Berichte über die entfernten Merkmale.

Wie es funktioniert

  • Das Skript berechnet die Korrelationsmatrix für alle Merkmale.
  • Für jedes Paar, das den Korrelationsschwellenwert überschreitet, vergleicht es die Korrelation beider Merkmale mit der Zielvariablen.
  • Das Merkmal mit der geringeren Zielkorrelation wird zur Entfernung markiert.
  • Dieser Prozess wird iterativ fortgesetzt, um Ketten von korrelierten Merkmalen zu behandeln.
  • Das Skript verarbeitet fehlende Werte, gemischte Datentypen und bietet Visualisierungen, die Korrelationscluster und die Auswahlentscheidung für jedes Paar zeigen.

Holen Sie sich das Skript zur Merkmalsauswahl basierend auf Korrelation

3. Identifizierung signifikanter Merkmale mittels statistischer Tests

Das Problem

Nicht alle Merkmale weisen eine statistisch signifikante Beziehung zur Zielvariablen auf. Merkmale, die keine bedeutende Assoziation mit dem Ziel zeigen, fügen Rauschen hinzu und erhöhen oft das Risiko von Überanpassung. Das Testen jedes Merkmals erfordert die Auswahl geeigneter statistischer Tests, die Berechnung von p-Werten, die Korrektur für multiple Tests und die korrekte Interpretation der Ergebnisse.

Was das Skript macht

Das Skript wählt automatisch den geeigneten statistischen Test basierend auf den Typen des Merkmals und der Zielvariablen aus. Es verwendet einen ANOVA F-Test für numerische Merkmale, die mit einer Klassifikationszielvariable gepaart sind, einen Chi-Quadrat-Test für kategoriale Merkmale, eine Bewertung der gegenseitigen Information zur Erfassung nicht-linearer Beziehungen und einen Regressions-F-Test, wenn das Ziel kontinuierlich ist. Anschließend wird entweder eine Bonferroni- oder eine False Discovery Rate (FDR)-Korrektur angewendet, um multiple Tests zu berücksichtigen, und es werden alle Merkmale nach statistischer Signifikanz sowie deren p-Werte und Teststatistiken zurückgegeben.

Wie es funktioniert

  • Das Skript bestimmt zunächst den Merkmalstyp und den Zieltyp und leitet jedes Merkmal zum richtigen Test weiter.
  • Für Klassifikationsaufgaben mit numerischen Merkmalen prüft ANOVA, ob der Mittelwert des Merkmals signifikant zwischen den Zielklassen variiert.
  • Für kategoriale Merkmale überprüft ein Chi-Quadrat-Test die statistische Unabhängigkeit zwischen dem Merkmal und dem Ziel.
  • Mutual Information Scores werden parallel berechnet, um nicht-lineare Beziehungen zu identifizieren, die standardisierte Tests möglicherweise übersehen.
  • Wenn das Ziel kontinuierlich ist, wird stattdessen ein Regressions-F-Test verwendet.

Sobald alle Tests durchgeführt wurden, werden die p-Werte mithilfe der Bonferroni-Korrektur — bei der jeder p-Wert mit der Gesamtzahl der Merkmale multipliziert wird — oder einer FDR-Methode für eine weniger konservative Korrektur angepasst. Merkmale mit angepassten p-Werten unter dem Standard-Signifikanzschwellenwert von 0,05 werden als statistisch signifikant markiert und priorisiert für die Aufnahme.

Holen Sie sich das Skript zur Merkmalsauswahl basierend auf statistischen Tests

4. Merkmale mit modellbasierten Wichtigkeitsscores bewerten

Das Problem

Die modellbasierte Merkmalsbedeutung bietet direkte Einblicke, welche Merkmale zur Vorhersagegenauigkeit beitragen, jedoch liefern unterschiedliche Modelle unterschiedliche Wichtigkeitsscores. Das Ausführen mehrerer Modelle, das Extrahieren von Wichtigkeitsscores und das Kombinieren der Ergebnisse in ein kohärentes Ranking ist komplex.

Was das Skript macht

Es trainiert mehrere Modelltypen und extrahiert die Merkmalsbedeutung aus jedem. Die Wichtigkeitsscores werden über die Modelle hinweg normalisiert, um einen fairen Vergleich zu ermöglichen. Es berechnet die Ensemble-Wichtigkeit durch Mittelung oder Ranking über die Modelle hinweg. Es bietet auch die Permutationswichtigkeit als modellunabhängige Alternative. Schließlich gibt es die gerankten Merkmale mit Wichtigkeitsscores aus jedem Modell und empfohlenen Merkmalsuntergruppen zurück.

Wie es funktioniert

  • Das Skript trainiert jeden Modelltyp mit dem vollständigen Merkmalsatz und extrahiert native Wichtigkeitsscores, wie z.B. baumbasierte Wichtigkeit für Wälder und Koeffizienten für lineare Modelle.
  • Für die Permutationswichtigkeit wird jedes Merkmal zufällig gemischt und der Rückgang der Modellleistung gemessen.
  • Die Wichtigkeitsscores werden normalisiert, sodass sie innerhalb jedes Modells auf 1 summieren.
  • Der Ensemble-Score wird als Durchschnittsrang oder durchschnittliche normalisierte Wichtigkeit über alle Modelle hinweg berechnet.
  • Merkmale werden nach Ensemble-Wichtigkeit sortiert, und die besten N Merkmale oder diejenigen, die einen Wichtigkeitsschwellenwert überschreiten, werden ausgewählt.

Holen Sie sich das Skript zur modellbasierten Merkmalsauswahl

5. Optimierung von Merkmalsuntergruppen durch rekursive Eliminierung

Das Problem

Die optimale Merkmalsuntergruppe sind nicht immer die N wichtigsten Merkmale; auch die Wechselwirkungen zwischen den Merkmalen sind entscheidend. Ein Merkmal mag allein schwach erscheinen, kann jedoch in Kombination mit anderen wertvoll sein. Die rekursive Merkmalseliminierung testet Merkmalsuntergruppen, indem sie iterativ die schwächsten Merkmale entfernt und Modelle neu trainiert. Dies erfordert jedoch Hunderte von Modelltrainingsdurchläufen und die Verfolgung der Leistung über verschiedene Untergruppengrößen.

Was das Skript macht

Es entfernt systematisch Merkmale in einem iterativen Prozess, trainiert Modelle neu und bewertet die Leistung in jedem Schritt. Es beginnt mit allen Merkmalen und entfernt in jeder Iteration das am wenigsten wichtige Merkmal. Die Modellleistung wird über alle Untergruppengrößen hinweg verfolgt. Es identifiziert die optimale Merkmalsuntergruppe, die die Leistung maximiert oder die Zielleistung mit minimalen Merkmalen erreicht. Es unterstützt die Kreuzvalidierung für robuste Leistungsschätzungen.

Wie es funktioniert

  • Das Skript beginnt mit dem vollständigen Merkmalsatz und trainiert ein Modell.
  • Es bewertet die Merkmale nach Wichtigkeit und entfernt das am niedrigsten eingestufte Merkmal.
  • Dieser Prozess wird wiederholt, wobei in jeder Iteration ein neues Modell mit dem reduzierten Merkmalsatz trainiert wird.
  • Leistungskennzahlen wie Genauigkeit, F1 und AUC werden für jede Untergruppengröße aufgezeichnet.
  • Das Skript wendet Kreuzvalidierung an, um stabile Leistungsschätzungen in jedem Schritt zu erhalten.

Die endgültige Ausgabe umfasst Leistungskurven, die zeigen, wie sich die Kennzahlen mit der Anzahl der Merkmale ändern, sowie die optimale Merkmalsuntergruppe. Das bedeutet, dass Sie entweder die optimale Leistung oder den Knickpunkt sehen, an dem das Hinzufügen von Merkmalen abnehmende Erträge bringt.

Holen Sie sich das Skript zur rekursiven Merkmalseliminierung

Fazit

Diese fünf Skripte adressieren die zentralen Herausforderungen der Merkmalsauswahl, die die Modellleistung und die Trainingseffizienz bestimmen. Hier ist eine kurze Übersicht:

  • Varianzschwellen-Selector: Entfernt uninformative konstante oder nahezu konstante Merkmale.
  • Korrelation-basierter Selector: Eliminieren redundante Merkmale und bewahren die prädiktive Kraft.
  • Statistischer Test-Selector: Identifiziert Merkmale mit signifikanten Beziehungen zum Ziel.
  • Modell-basierter Selector: Bewertet Merkmale mithilfe von Ensemble-Wichtigkeit aus mehreren Modellen.
  • Rekursive Merkmalseliminierung: Findet optimale Merkmalsuntergruppen durch iteratives Testen.

Jedes Skript kann unabhängig für spezifische Auswahlaufgaben verwendet oder in eine vollständige Pipeline integriert werden. Viel Erfolg bei der Merkmalsauswahl!

Bala Priya C ist Entwicklerin und technische Autorin aus Indien. Sie arbeitet an der Schnittstelle von Mathematik, Programmierung, Datenwissenschaft und Inhaltserstellung. Ihre Interessensgebiete und Fachkenntnisse umfassen DevOps, Datenwissenschaft und natürliche Sprachverarbeitung. Sie genießt das Lesen, Schreiben, Programmieren und Kaffee! Derzeit arbeitet sie daran, ihr Wissen mit der Entwicklergemeinschaft zu teilen, indem sie Tutorials, Anleitungen, Meinungsartikel und mehr verfasst. Bala erstellt auch ansprechende Ressourcenübersichten und Programmieranleitungen.

Erhalten Sie das kostenlose E-Book ‚KDnuggets Artificial Intelligence Pocket Dictionary‘ zusammen mit dem führenden Newsletter zu Datenwissenschaft, maschinellem Lernen, KI und Analytik direkt in Ihr Postfach.

Durch die Anmeldung akzeptieren Sie die Datenschutzrichtlinie von KDnuggets.

„`

Bildquelle: ai-generated-gemini

KI Snack