GridSearchCV配件

时间:2018-11-25 17:56:38

标签: python scikit-learn gridsearchcv

我在使用二值化标签适应分类器时遇到问题。

clf_linear = GridSearchCV(SVC(kernel='linear', class_weight='balanced'),
                      param_grid, cv=5)

clf_linear = clf_linear.fit(X_train_pca, y_train)

y_train通过以下方法二值化:

y_train = label_binarize(y_train, classes=[1, 2, 3])

我遇到以下错误:

column_or_1d中的文件“ C:\ Python \ lib \ site-packages \ sklearn \ utils \ validation.py”,行788     引发ValueError(“错误的输入形状{0}”。format(shape)) ValueError:输入形状错误(545,3)

输入标签的形状是(682,3)而不是(545,3)。

我的教授告诉我在gridSearchCV中使用二值化标签,但是阅读scikit-learn文档,我认为我做不到。

1 个答案:

答案 0 :(得分:0)

无关紧要的是682,3或545,3。为什么目标有3列?对于SVC,您的y(目标)应为一维数组。您不需要执行label_binarize操作。保持y_train不变。

这样做:

y_train = label_binarize(y_train, classes=[1, 2, 3])

将y_train转换为label-indicator矩阵。这用于多标签分类问题(样本一次可以具有多个类别)。它不用于多类问题。

y_train保留为一维数组,SVC将处理其余的一维数组。