【问题标题】:low accuracy in classification using svm使用 svm 的分类精度低
【发布时间】:2019-02-06 20:38:52
【问题描述】:

我正在尝试使用 SVM 将大约 5000 条记录和大约 1000 个真值的数据分类为 2 个类。我的代码来自以下示例:

from sklearn import svm
clf = svm.SVC()
clf.fit(X, Y)

所以我使用了大部分默认值。方差对我来说非常高。训练准确率超过 95%,而我正在从数据集中提取大约 50 条记录的测试为 50%。

但是,如果我将测试数据的训练大小更改为大约 3000 和 2000 条记录,那么训练准确度会下降到 80%,而测试准确度会上升。为什么会这样?

现在,如果我将 scikit-learn 库更改为逻辑回归,那么百分比将保持不变。为什么会这样?

【问题讨论】:

    标签: scikit-learn svm variance


    【解决方案1】:

    对 svm 的每次修改都会产生新的准确度,请记住,训练数据的准确度与实际数据的准确度不同。如果您的目标是两者都具有高精度,我建议您先尝试清理数据。

    【讨论】:

    • 嗨@Patrick,感谢您的回复。该数据是根据静态测试从 db 中选择的。我应该删除 > 5σ 的值吗?我是否也缩放数字 (X¡ - µ)/(max - min)?
    • 嗨@Patrick,预计数据已被清除,并删除了 5σ 值。我进行了缩放,将数据拆分更改为 2000 (1440 True, 560 False) 数据点和 2510 (2350 True, 160 False) 测试点。该数据预计有 20% - 30% 的错误。这减少了方差。现在我得到了 73.39% 的训练准确率和 74.77 的测试准确率。这可以被认为是可接受的模型吗?
    猜你喜欢
    • 2016-07-14
    • 1970-01-01
    • 2017-09-19
    • 2013-01-09
    • 2018-12-28
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    相关资源
    最近更新 更多