SciKit SGD 回归器 RBF 内核逼近

Posted

技术标签:

【中文标题】SciKit SGD 回归器 RBF 内核逼近【英文标题】:SciKit SGD Regressor RBF Kernel Approximation 【发布时间】:2013-11-29 05:02:53 【问题描述】:

我正在使用 scikit-learn 并希望使用 RBF 内核运行 SVR。我的数据集非常大,因此通过阅读其他帖子,我被建议使用 SGD 回归和 RBF 近似。有趣的是,与单独使用 SGD 相比,使用带有 RBF 的 SGD 得到的结果更差。我想这将是由于错误的参数值。我尝试循环遍历 RBF 采样器的 gamma 和 n_components 并尝试了 SGD regessor 的一些参数,但无济于事。我还输出了训练和交叉验证的错误,两者大致相同,所以我认为这是一个偏差问题。

【问题讨论】:

*** 不是询问机器学习领域特定问题的最佳场所。我认为更好的选择是:stats.stackexchange.com/search?q=scikit 您使用的是哪种近似值?我发现 Nystroem 在相同的维度上比 RBFSampler 工作得更好。此外,更多的维度总是更好。您应该只搜索 gamma 和 SGD 参数。也许宁愿尝试 LinearSVC(dual=False) 并搜索 C(和 gamma)。 这个问题似乎是题外话,因为它是关于统计,而不是编程。 【参考方案1】:

为什么您认为 RBF 特征空间必须比线性特征空间具有更高的准确度?虽然情况经常如此,但没有理由相信这一定是真的。 RBF 内核对整个类别的真实世界数据表现不佳

除此之外,还有许多其他问题可以提出/探索。如果没有其他人使用/探索您的数据,这些问题通常是不可理解的。如:

原始特征值是否正确归一化? 所使用的近似方法是否适合数据量/数据类型 问题是病态还是几乎病态?如果是这样 - 我们对近似的近似是我们错误的原因吗? 原始特征是否足以使用 RBF? 测试的参数值是否适合我的数据及其缩放比例? 目前获得的错误率是多少?疼痛可行错误率的合理预期是多少?

【讨论】:

以上是关于SciKit SGD 回归器 RBF 内核逼近的主要内容,如果未能解决你的问题,请参考以下文章

在 python scikit-learn 中,RBF 内核的性能比 SVM 中的线性差得多

在 sklearn 中,具有线性内核的 SVM 模型和具有 loss=hinge 的 SGD 分类器有啥区别

用随机梯度下降法(SGD)做线性拟合

RBF网络

为啥 scikit-learn SVM 分类器交叉验证这么慢?

使用RBF神经网络实现函数逼近