GridSearchCV 拟合

GridSearchCV fitting

我在使用二值化标签拟合我的分类器时遇到问题。

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])

我收到以下错误:

文件 "C:\Python\lib\site-packages\sklearn\utils\validation.py",第 788 行,在 column_or_1d 提高 ValueError("bad input shape {0}".format(shape)) ValueError:错误的输入形状 (545, 3)

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

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

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

这样做:

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

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

保持 y_train 作为一维数组,SVC 将处理其余部分。