使用LIBSVM进行分类的准确率为100% - 可能出现什么问题?

时间:2016-09-27 16:21:28

标签: machine-learning classification svm libsvm

我正在建立一个使用LIBSVM对恶性乳腺肿瘤进行分类的模型。这是我遵循的算法:

  1. 使用向后消除功能进行选择。
  2. 使用网格搜索计算每组要素的C和gamma。
  3. 使用10倍交叉验证得出最佳的C和gamma。
  4. 使用上述步骤,找到最佳功能子集和最高准确度。
  5. 问题是我使用LIBSVM在80:20数据集上获得100%的准确率。我没有排除任何功能,我不是在训练和测试相同的数据。我有什么不对的暗示吗?以下是其他一些相关信息:

    cost = [2^-10, 2^-8, 2^-6, 2^-4, 2^-2, 0.5, 1,
            2, 2^2, 2^3, 2^4, 2^5, 2^6, 2^7, 2^8, 2^9, 2^10];
    g = [2^-10, 2^-8, 2^-6, 2^-4, 2^-2, 2^-1, 1,
         2, 2^2, 2^3, 2^4, 2^5, 2^6, 2^7, 2^8, 2^9, 2^10];
    most optimal C = 1;
    most optimal gamma = 9.7656e-04;
    Accuracy on 50:50 test:train dataset: 98.5337%
    Accuracy on 70:30 test:train dataset: 99.5122%
    Dataset used: University of Wisconsin breast cancer dataset (682 entries).
    

1 个答案:

答案 0 :(得分:3)

总结:您没有抱怨其他两个数据集; 100%的准确度与那些相当一致。是什么让你认为你应该的准确度较低?

让我们来看看错误分类的数量:

50:50 data set -- 5 / 341 errors
70:30 data set -- 1 / 205 errors
80:20 data set -- 0 / 136 errors

80:20的结果与您之前的结果非常一致:您的准确度已经提高到(显然)99.8%以上。

要求训练的最大准确性表明它可能保留所有特征,并且具有过度拟合的明显危险。但是,由于您显然发现前两个数据集是可接受的,因此我觉得数据集具有高度自洽性。根据我的经验,我发现这种一致性很奇怪,但是你没有描述数据集的属性,甚至没有给我们提供样本或有用的链接来检查。