我使用13个特征(没有二元特征)构建了一个分类器,并使用scikit工具(Normalizer().transform)对每个样本进行了个别归一化处理。
当我进行预测时,所有的训练集都被预测为正例,而所有的测试集都被预测为负例(无论实际是正例还是负例)。
我应该关注分类器、特征还是数据中的哪些异常情况?
备注:1)我分别对测试集和训练集进行了归一化处理(每个样本单独处理)。
2)我尝试了交叉验证,但性能依然相同。
3)我使用了线性和RBF核的SVM。
4)我也尝试了不进行归一化处理,但结果同样不理想。
5)我的正负数据集数量相同(各400个),测试集中有34个正样本和1000多个负样本。
回答:
如果你在平衡数据上进行训练,”它将所有训练集预测为正例”这一事实足以说明肯定是哪里出了问题。
尝试构建一个非常简单的模型(例如使用一两个特征的线性SVM),并查看模型以及训练数据的可视化;参考scikit-learn的示例:http://scikit-learn.org/stable/auto_examples/svm/plot_iris.html
还有可能你的输入数据中有很多大的异常值影响了转换过程…