Ich habe den folgenden CodeScikit-Learn Quer val Punktzahl: zu viele Indizes für Array
from sklearn.ensemble import ExtraTreesClassifier
from sklearn.cross_validation import cross_val_score
#split the dataset for train and test
combnum['is_train'] = np.random.uniform(0, 1, len(combnum)) <= .75
train, test = combnum[combnum['is_train']==True], combnum[combnum['is_train']==False]
et = ExtraTreesClassifier(n_estimators=200, max_depth=None, min_samples_split=10, random_state=0)
min_samples_split=10, random_state=0 )
labels = train[list(label_columns)].values
tlabels = test[list(label_columns)].values
features = train[list(columns)].values
tfeatures = test[list(columns)].values
et_score = cross_val_score(et, features, labels, n_jobs=-1)
print("{0} -> ET: {1})".format(label_columns, et_score))
Überprüfung der Form der Arrays:
features.shape
Out[19]:(43069, 34)
Und
labels.shape
Out[20]:(43069, 1)
und Ich bekomme:
IndexError: too many indices for array
und dieser relevante Teil des Zurückverfolgungs:
---> 22 et_score = cross_val_score(et, features, labels, n_jobs=-1)
ich die Daten von Pandas Datenrahmen zu schaffen und ich suchte hier und sah einen Hinweis auf mögliche Fehler über diese Methode kann aber nicht herausfinden, wie zu korrigieren ? Was die Datenfelder wie folgt aussehen: Funktionen
Out[21]:
array([[ 0., 1., 1., ..., 0., 0., 1.],
[ 0., 1., 1., ..., 0., 0., 1.],
[ 1., 1., 1., ..., 0., 0., 1.],
...,
[ 0., 0., 1., ..., 0., 0., 1.],
[ 0., 0., 1., ..., 0., 0., 1.],
[ 0., 0., 1., ..., 0., 0., 1.]])
Etiketten
Out[22]:
array([[1],
[1],
[1],
...,
[1],
[1],
[1]])
Bitte buchen Sie die vollständige Traceback. In welcher Version von scikit-learn bist du? Und können Sie versuchen, stattdessen '' labels.ravel() '' zu übergeben? –
labels.ravel() hat es geschafft! War gerade das Lesen eines anderen Fehlers, der darauf hindeutet, dass mit anderen Code, ich bin auf Scikit learn 17 dev0 – dartdog
@AndreasMueller Vielen Dank für die schnelle Antwort! Könnte ein paar anderen helfen, wenn Sie eine Antwort geben können .. – dartdog