GridSearchCV错误"数组中的索引太多"

时间:2017-03-21 13:40:39

标签: scikit-learn random-forest grid-search

我正在使用监督学习算法Random Forest分类器来训练数据。

    clf = RandomForestClassifier(n_estimators=50, n_jobs=3, random_state=42)

网格中的不同参数是:

    param_grid = { 
    'n_estimators': [200, 700],
    'max_features': ['auto', 'sqrt', 'log2'],
    'max_depth': [5,10],
    'min_samples_split': [5,10]
    }

分类器" clf"和参数grid" param_grid"在GridSearhCV方法中传递。

    clf_rfc = GridSearchCV(estimator=clf, param_grid=param_grid)

使用

将标签与标签匹配时
    clf_rfc.fit(X_train, y_train)

我收到错误"数组中的索引太多"。 X_train的形状是(204,3),y_train的形状是(204,1)。

尝试选项clf_rfc.fit(X_train.values,y_train.values)但无法摆脱错误。

任何建议都将不胜感激!!

3 个答案:

答案 0 :(得分:4)

如前文所述,问题似乎在y_train中,维度为(204,1)。我认为这是问题而不是(204,1)应该是(204,),点击here获取更多信息。

所以,如果你重写y_train,一切都应该没问题:

c, r = y_train.shape
y_train = y_train.reshape(c,)

如果它给出错误,例如:AttributeError:' DataFrame'对象没有属性'重塑'然后尝试:

c, r = y_train.shape
y_train = y_train.values.reshape(c,)

答案 1 :(得分:1)

'y-train'数据框的形状不正确。 试试这个:

clf_rfc.fit(X_train, y_train[0].values)

OR

clf_rfc.fit(X_train, y_train.values.ravel())

答案 2 :(得分:1)

y_train应该是一维数组

我已经尝试clf_rfc.fit(X_train, y_train.flatten())了,它确实有效!