【问题标题】:How to choose parameters for svm in sklearn如何在 sklearn 中为 svm 选择参数
【发布时间】:2017-11-10 11:31:58
【问题描述】:

我正在尝试使用 sklearn 中的 SVM 来解决分类问题。我得到了一个高度稀疏的数据集,其中包含超过 50K 行和二进制输出。
问题是我不太清楚如何有效地选择参数,主要是内核,gamma anc C。

例如,对于内核,我是否应该尝试所有内核并只保留给我最满意结果的内核,还是在选择内核之前我们可以首先看到与我们的数据相关的内容? C 和 gamma 也是如此。

谢谢!

【问题讨论】:

  • “高度稀疏的数据集”是什么意思?数据集只能相对于参考空间是“稀疏的”,而您没有给出任何数据集。此外,一点知道您有多少功能(列)会有所帮助。
  • 您可以使用GridSearchCV进行超参数搜索。

标签: python machine-learning scikit-learn svm


【解决方案1】:

是的,这主要是一个实验问题——尤其是您对您的数据集很少告诉我们:可分离性、线性度、密度、连通性……所有影响分类算法的特征。

首先尝试线性和高斯内核。如果线性不能很好地工作而高斯可以,那么尝试其他内核。

一旦您找到了最好的 1 或 2 个内核,然后就可以使用成本和 gamma 参数。 Gamma 是一个“松弛”参数:它允许内核产生一定比例的原始分类错误,以换取其他好处:间隙宽度、分区函数的简单性等。

我还没有一个应用程序可以从改变成本中获得微不足道的好处。

【讨论】:

    猜你喜欢
    • 2015-06-26
    • 2016-01-13
    • 1970-01-01
    • 2017-04-21
    • 2018-08-11
    • 2017-10-19
    • 2021-08-01
    • 2018-09-25
    • 2018-05-17
    相关资源
    最近更新 更多