gpt4 book ai didi

python - 如何计算小数据集的SVM分类概率(置信度)?

转载 作者:太空狗 更新时间:2023-10-30 01:37:05 26 4
gpt4 key购买 nike

用例:

我有一个小数据集,每个类大约有 3-10 个样本。我正在使用 sklearn SVC 对具有 rbf 内核的那些进行分类。我需要预测的置信度以及预测的类别。我使用了 SVC 的 predict_proba 方法。我得到了奇怪的结果。我搜索了一下,发现它只对较大的数据集有意义。

在堆栈上找到这个问题 Scikit-learn predict_proba gives wrong answers .

问题的作者通过乘以数据集验证了这一点,从而复制了数据集。

我的问题:

1) 如果我将我的数据集乘以 100,每个样本 100 次,它会增加“predict_proba”的“正确性”。它会有什么副作用?过度拟合?

2) 有没有其他方法可以计算分类器的置信度?比如与超平面的距离?

3) 对于这个小样本量,SVM 是推荐的算法还是我应该选择其他算法?

最佳答案

首先:对于任何实际用途而言,您的数据集似乎都非常小。话虽如此,让我们看看我们能做些什么。

SVM 主要在高维设置中流行。目前尚不清楚这是否适用于您的项目。他们在少数(甚至单个)支持实例上构建平面,并且在神经网络的大型训练集的情况下通常表现不佳。先验地,它们可能不是您更糟糕的选择。

对数据进行过采样对于使用 SVM 的方法作用不大。 SVM 基于支持向量的概念,支持向量基本上是类的异常值,定义类中的内容和不类中的内容。过采样不会构建新的支持向量(我假设您已经在使用训练集作为测试集)。

在这种情况下,普通过采样也不会为您提供任何关于置信度的新信息,除了由不平衡过采样构造的伪影之外,因为实例将是精确的副本并且不会发生分布变化。您可以使用 SMOTE 找到一些信息。 (合成少数过采样技术)。您基本上会根据您拥有的实例生成合成实例。从理论上讲,这将为您提供新的实例,这些实例不会是您拥有的实例的精确副本,因此可能会有点脱离正常分类。注意:根据定义,所有这些示例都将位于样本空间中的原始示例之间。这并不意味着它们将位于您预测的 SVM 空间之间,可能学习效果并不真实。

最后,您可以使用到超平面的距离来估计置信度。请参阅:https://stats.stackexchange.com/questions/55072/svm-confidence-according-to-distance-from-hyperline

关于python - 如何计算小数据集的SVM分类概率(置信度)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41135512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com