2016-12-01 3 views
0

Ich bin neu zu sklearn und Probleme beim Formatieren der Daten, um eine Verwirrung Matrix zu prognostizieren und zu bewerten. Ich benutze diese Random Forest tutorial.Python IndexError: nur ganze Zahlen

Hier ist mein Code

from sklearn.ensemble import RandomForestClassifier 
import numpy as np 
import pandas as pd 

dataframe = pd.read_csv('output.txt', sep='\t') 
df = pd.DataFrame(dataframe) 
df['is_train'] = np.random.uniform(0, 1, len(df)) <= .75 
train, test = df[df['is_train']==True], df[df['is_train']==False] 
features = df.columns[1:5] 
clf = RandomForestClassifier(n_jobs=2) 
y, _ = pd.factorize(train['event_count']) 
clf.fit(train[features], y) 

Diese Linie für meine Vorhersagen gibt den Fehler:

preds = df['event_count'][clf.predict(test[features])] 
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices 

Antwort

0

Das Problem sieht aus wie es diese df[:6] ist. Das bringt euch jede Reihe bis 6 zurück, nicht die Spalten.

+0

Ich aktualisiert, um nur die eine Zielspalte (nicht sicher, ob das korrekt ist), und ich bekomme immer noch den gleichen Fehler – Bachzen

+0

Ich glaube, das sollte funktionieren. Ändere 'clf.fit (train [features], y)' in 'model = clf.fit (train [features], y)'. Dann mache 'preds = model.predict (test [features])'. Lass mich wissen, ob das funktioniert. –

+0

Mein Problem war, dass meine 'Test'-Variable beim ersten Mal nicht übertrieben wurde. So, jetzt, das funktioniert. – Bachzen