使用 LIBSVM 进行分类时 100% 的准确率——可能有什么问题?

100% accuracy in classification with LIBSVM- What could be wrong?

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

  1. 使用向后消除进行特征选择。
  2. 使用网格搜索为每组特征计算 C 和 gamma。
  3. 使用 10 折交叉验证得出最佳 C 和 gamma。
  4. 使用上述步骤,找到可能的最佳特征子集和最大准确度。

问题是我使用 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).

总结:你没有抱怨其他两个数据集; 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%。

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