LoslegenKostenlos loslegen

Hoch korrelierte Features herausfiltern

Du automatisierst das Entfernen von hoch korrelierten Features im numerischen ANSUR-Datensatz. Du berechnest die Korrelationsmatrix und filterst Spalten heraus, deren Korrelationskoeffizient größer als 0,95 oder kleiner als -0,95 ist.

Da jeder Korrelationskoeffizient in der Matrix zweimal vorkommt (Korrelation von A mit B entspricht der Korrelation von B mit A), solltest du die Hälfte der Korrelationsmatrix ignorieren, damit nur eines der beiden korrelierten Features entfernt wird. Nutze dafür einen Masken-Trick.

Diese Übung ist Teil des Kurses

Dimensionsreduktion in Python

Kurs anzeigen

Anleitung zur Übung

  • Berechne die Korrelationsmatrix von ansur_df und bilde den Absolutwert dieser Matrix.
  • Erzeuge eine boolesche Maske mit True-Werten im oberen rechten Dreieck und wende sie auf die Korrelationsmatrix an.
  • Setze den Korrelationsschwellenwert auf 0.95.
  • Entferne alle in to_drop aufgeführten Spalten aus dem DataFrame.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Calculate the correlation matrix and take the absolute value
corr_df = ansur_df.____().____()

# Create a True/False mask and apply it
mask = np.____(np.____(corr_df, dtype=____))
tri_df = corr_df.____(mask)

# List column names of highly correlated features (r > 0.95)
to_drop = [c for c in tri_df.columns if any(tri_df[c] >  ____)]

# Drop the features in the to_drop list
reduced_df = ansur_df.____(____, axis=1)

print(f"The reduced_df DataFrame has {reduced_df.shape[1]} columns.")
Code bearbeiten und ausführen