machine-learning - 使用 libsvm 提高标准化准确性的建议

标签 machine-learning artificial-intelligence svm libsvm

当我尝试使用 libsvm 对数据进行分类时遇到问题。我的训练和测试数据非常不平衡。当我对 svm 参数进行网格搜索并使用类别权重训练数据时,测试给出的准确度为 96.8113%。但由于测试数据不平衡,所有正确的预测值均来自负类,且大于正类。

我尝试了很多事情,从改变权重到改变 Gamma 和成本值,但每次尝试我的归一化准确度(考虑到正类和负类)都较低。使用默认的 grid.py 参数训练 50% 的正例和 50% 的负例,我的准确率非常低(18.4234%)。

我想知道问题是否出在我的描述中(如何构建特征向量)、不平衡中(我应该以其他方式使用平衡数据吗?)或者我应该更改我的分类器?

最佳答案

更好的数据总是有帮助的。

我认为不平衡是问题的一部分。但问题更重要的部分是如何评估分类器。根据数据中正数和负数的分布来评估准确性几乎是没有用的。对 50% 和 50% 的数据进行训练以及对分布在 99% 和 1% 的数据进行测试也是如此。

现实生活中存在一些问题,就像您所研究的问题一样(积极与消极之间存在很大的不平衡)。让我举两个例子:

  • 信息检索:给定一个巨大集合中的所有文档,返回与搜索词 q 相关的子集。

  • 人脸检测:这张大图像标记了所有存在人脸的位置。

此类系统的许多方法都是基于分类器的。为了评估两个分类器,通常使用两种工具: ROC curves , Precision Recall曲线和 F-score 。这些工具提供了一种更有原则的方法来评估一个分类器何时比另一个分类器工作得更好。

关于machine-learning - 使用 libsvm 提高标准化准确性的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19857296/

相关文章:

algorithm - 什么是检测异常的好算法?

machine-learning - 为什么模型无法学习这种填充整数的游戏

java - Tic Tac Toe 的 Minimax 算法中的错误

c++ - OpenCV C++ 的 SVM 对同一类图像返回相同的置信度分数

excel - Azure机器学习工作室: how to add a dataset from a local Excel file?

python - 定义自定义 PyMC 发行版

python - 值错误: invalid fill value with a <class 'pandas.core.frame.DataFrame' >

python - Keras 一个操作在 train_on_batch 时对梯度有 None

machine-learning - 如何在之前的模型的基础上继续训练SVM

machine-learning - BaggingClassifier 每次都会获取所有数据集