在Python的scikit-learn中,我使用随机梯度下降进行多类分类,最小化对数损失函数。
clf = SGDClassifier(loss="log", penalty="l2")
当我在测试集上进行交叉验证时,对于数据的每个分割,我计算:
score = clf.fit(X_train, y_train).score(X_test, y_test)
这个分数是否是对损失函数的评估?
对于每次交叉验证分割,我的分数总是0.0。这是否意味着我的分类器正确标记了测试数据,或者是我的准确率非常低?
回答:
这里有解释。这与损失函数无关。
返回给定测试数据和标签的平均准确率。
在多标签分类中,这是子集准确率,这是一个严格的度量标准,因为你要求每个样本的每个标签集都被正确预测。
它内部使用了accuracy_score函数。
准确率分类分数。
在多标签分类中,该函数计算子集准确率:为一个样本预测的标签集必须与y_true中对应的标签集完全匹配。
0.0意味着你的分类器无法正确分类X_test中的任何样本。