我正在使用监督学习算法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)但无法摆脱错误。
任何建议都将不胜感激!!
答案 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())
了,它确实有效!