【发布时间】:2016-06-19 18:18:46
【问题描述】:
我正在使用 LinearSVM 将我的文档分类。但是,我的数据集不平衡,有些类别下有 48,000 个文档,有些只有 100 个。当我训练我的模型时,即使使用 Stratified KFold,我发现具有 48,000 个文档的类别获得了更大的文档部分(3300)与其他人相比。在这种情况下,它肯定会给我有偏见的预测。如何确保此选择没有偏见?
kf=StratifiedKFold(labels, n_folds=10, shuffle=True)
for train_index, test_index in kf:
X_train, X_test = docs[train_index],docs[test_index]
Y_train, Y_test = labels[train_index],labels[test_index]
然后我将这些(X_train, Y_train) 写入文件,计算特征矩阵并将它们传递给分类器,如下所示:
model1 = LinearSVC()
model1 = model1.fit(matrix, label_tmp)
pred = model1.predict(matrix_test)
print("Accuracy is:")
print(metrics.accuracy_score(label_test, pred))
print(metrics.classification_report(label_test, pred))
【问题讨论】: