2014-04-25 22 views

Antwort

54

Die meisten sklearn Objekte arbeiten mit pandas Datenrahmen gut, würde so etwas für Sie arbeiten?

import pandas as pd 
import numpy as np 
from sklearn.decomposition import PCA 

df = pd.DataFrame(data=np.random.normal(0, 1, (20, 10))) 

pca = PCA(n_components=5) 
pca.fit(df) 

Sie können die Komponenten zugreifen, sich mit

pca.components_ 
+5

Das funktioniert super. Nur eine Ergänzung, die von Interesse sein könnte: Es ist oft praktisch, am Ende mit einem DataFrame zu enden, im Gegensatz zu einem Array. Um das zu tun, würde man etwas tun wie: pandas.DataFrame (pca.transform (df), Spalten = ['PCA% i'% i für i im Bereich (n_components)], index = df.index), wo ich habe Setze n_components = 5. Außerdem haben Sie einen Tippfehler im Text über dem Code, "Panadas" sollten "Pandas" sein. :) – Moot