Wie berechnet man die Korrelation zwischen allen Spalten und entfernt stark korrelierte mit Python oder Pandas

8

Ich habe einen riesigen Datensatz und vor der maschinellen Lernmodellierung wird immer vorgeschlagen, zuerst stark korrelierte Deskriptoren (Spalten) zu entfernen, wie kann ich die Spaltenwichtekorrelation berechnen und die Spalte mit einem Schwellenwert entfernen, sagen wir alle entfernen Spalten oder Deskriptoren mit & gt; 0,8-Korrelation. Außerdem sollte es die Header in Daten reduzieren ..

Beispieldatensatz

%Vor%

Bitte helfen Sie ....

    
jax 27.03.2015, 06:56
quelle

4 Antworten

10

Hier ist der Ansatz, den ich verwendet habe -

%Vor%

Hoffe, das hilft!

    
NISHA DAGA 21.06.2017 11:11
quelle
1

Erstens würde ich vorschlagen, etwas wie PCA als Dimensionalität Reduktion Methode, aber wenn Sie Ihre eigenen rollen müssen, dann ist Ihre Frage nicht ausreichend eingeschränkt. Wo zwei Spalten korreliert sind, welche möchten Sie entfernen? Was ist, wenn die Spalte A mit der Spalte B korreliert ist, während die Spalte B mit der Spalte C korreliert ist, nicht aber mit der Spalte A?

Sie können eine paarweise Korrelationsmatrix erhalten, indem Sie DataFrame.corr() ( Dokumente aufrufen ), die Ihnen bei der Entwicklung Ihres Algorithmus helfen könnten, aber letztendlich müssen Sie dies in eine Liste von Spalten konvertieren, die Sie behalten möchten.

    
Jamie Bull 27.03.2015 07:51
quelle
0

Verbinden Sie den Funktionsdatenrahmen mit dieser Funktion und legen Sie nur Ihren Korrelationsschwellenwert fest. Es wird automatisch Spalten löschen, aber gibt Ihnen auch eine Diagnose der Spalten, die es ablegt, wenn Sie es manuell tun möchten.

%Vor%     
TomDobbs 29.03.2017 21:22
quelle
0

Sie können für einen gegebenen Datenrahmen df:

verwenden %Vor%     
Mojgan Mazouchi 20.07.2017 21:24
quelle

Tags und Links