cikit-learn报”ValueError: ‘kernel’ parameter should be one of {‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’} but was ‘{kernel}’. “的原因以及解决办法

yizhihongxing

问题原因

这种错误通常出现在使用了不支持的核函数的情况下。Scikit-learn中支持的核函数有:线性核函数(linear)、多项式核函数(poly)、径向基函数核函数(rbf)、sigmoid核函数(sigmoid)和预计算核函数(precomputed)。

解决办法

  1. 检查使用的核函数是否在支持列表中,如果不是,请更改为支持的核函数。

  2. 如果核函数在支持列表中,可能是由于字符串格式的错误导致的。请确保你输入的字符串与核函数名称完全匹配,并且不包含任何额外的空格或标点符号。

  3. 如果仍然无法解决问题,可能是由于安装的scikit-learn库版本过旧或过新导致的。请尝试升级或降级scikit-learn版本,并确保你的代码与所选版本兼容。

示例代码:

from sklearn.svm import SVC

# 使用“my_kernel”核函数
svm = SVC(kernel='my_kernel')  # 报错:ValueError: 'kernel' parameter should be one of {'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'} but was 'my_kernel'

# 使用正确的核函数
svm = SVC(kernel='rbf')  # 正确

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:cikit-learn报”ValueError: ‘kernel’ parameter should be one of {‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’} but was ‘{kernel}’. “的原因以及解决办法 - Python技术站

(0)
上一篇 2023年3月19日
下一篇 2023年3月19日

相关文章

合作推广
合作推广
分享本页
返回顶部