提高SVM分类器精度的技术

时间:2016-08-17 16:32:37

标签: machine-learning svm

我正在尝试使用UCI数据集构建分类器来预测乳腺癌。我正在使用支持向量机。尽管我最真诚地努力提高分类器的准确性,但我不能超过97.062%。我尝试过以下方法:

1. Finding the most optimal C and gamma using grid search.
2. Finding the most discriminative feature using F-score.

有人可以建议我提高准确性的技巧吗?我的目标是至少99%。

1.Data are already normalized to the ranger of [0,10]. Will normalizing it to [0,1]  help?

2. Some other method to find the best C and gamma?

2 个答案:

答案 0 :(得分:2)

对于SVM,重要的是对所有特征进行相同的缩放,通常通过缩放每个(列)特征中的值来完成,使得均值为0,方差为1.另一种方法是缩放它,使得min和max例如是0和1.但是,[0,1]和[0,10]之间没有任何差别。两者都会表现出相同的表现。

如果您坚持使用SVM进行分类,可能导致改进的另一种方法是集合多个SVM。如果您使用的是Python,可以尝试BaggingClassifier中的sklearn.ensemble

另请注意,您无法从一组真实的训练数据中获得任何表现。我认为97%是一个非常好的表现。如果高于此值,可能会过度拟合数据。

答案 1 :(得分:0)

在阅读您的问题以及您向作者提出的论据声称达到acc = 99.51%时,我想到了一些想法。 我的第一个想法是过大。我可能是错的,因为它可能取决于数据集-但是第一个想法将是过拟合。现在是我的问题;

1-作者在其文章中是否已说明数据集是否已分为训练和测试集? 2-是否通过培训或测试组达到了acc = 99.51%?

使用训练集,当模型过度拟合时,您可以达到acc = 99.51%。 通常,在这种情况下,SVM分类器在未知数据集上的性能很差。