Python TypeError:__init__()得到了一个意外的关键字参数'decision_function_shape'

数据挖掘 Python scikit-学习 支持向量机
2022-03-17 13:53:49

我尝试创建一个SVM Classifier,如:

# Create a SVM Classifier
model = SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
            decision_function_shape=None, degree=3, gamma='auto', kernel='linear',
            max_iter=-1, probability=True, random_state=None, shrinking=True,
            tol=0.001, verbose=False
            )

(使用Python 2.7

但是得到这个错误 -

TypeError:init()得到了一个意外的关键字参数'decision_function_shape'

对此有什么想法吗?如何整理?

更新>>

我的sklearn版本是0.16.1. 我试图安装更新,但它一直说 - No matching distribution found for the upgrade

1个回答

您的代码片段与scikit-learn 的示例几乎完全相同(除了 kernel='rbf' 和 probability=False),并且在 0.18 版下工作正常,前提是存在所需的导入。

更新:scikit learn 使用的版本是 0.16.1,在那个版本中,SVC 没有像 0.18 那样多的参数,根据文档因此,您应该使用以下内容:

模型 = SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3,
            伽玛=0.0,内核='线性',max_iter=-1,概率=真,
            随机状态=无,收缩=真,tol=0.001,详细=假)

要将 scikit-learn 升级到 0.18,(假设您使用 pip)执行以下操作:

pip install scikit-learn==0.18 --force-reinstall