【问题标题】:TypeError: __init__() got an unexpected keyword argument 'iid'TypeError: __init__() 得到了一个意外的关键字参数 'iid'
【发布时间】:2021-10-21 19:31:51
【问题描述】:

我使用 GridSearchCVRandomizedSearchCV 为我的 TCSVM 模型找到了最佳参数和最佳分数。 现在我想使用 BayesSearchCV 来将它与以前的方法进行比较,但我收到了这个错误__init__() got an unexpected keyword argument 'iid'

这是我使用的代码:

    model2 = make_pipeline(StandardScaler(), SVC())
    parameter_grid = {
            'C': Real(1e-5, 1e+3, prior='log-uniform'),
            'gamma': Real(2e-2, 2e+3, prior='log-uniform'),
            'degree': Integer(1, 8),
            'kernel': Categorical(['linear', 'poly', 'rbf']),
        }
    grid_searchdt = BayesSearchCV(estimator=model2, search_spaces=parameter_grid, n_iter=32, cv=5, random_state=0,
                                  iid=True)
    grid_searchdt.fit(X_Train, Y_Train)
    grid_searchdt.score(X_Test, Y_Test)
    print("Score opt =", grid_searchdt.score(X_Test, Y_Test))
    print("Best_Params =", grid_searchdt.best_params_)
    print("Best_Score =", grid_searchdt.best_score_)

我阅读了一些解决方案,说我需要降级 scikit-learn 版本,但它对我不起作用。 请有任何解决方案。

【问题讨论】:

  • 首先阅读BayesSearchCV 的文档,因为它似乎无法获取iid - 所以删除它或签入文档可以使用不同的名称获取它
  • 是的,它无法将iid 作为参数BayesSearchCV 定义,但是当我运行我的代码时,它给了我同样的错误,我也输入了iid = False 也同样的错误
  • 你必须删除iid= - 不要使用它。
  • @furas idd 参数确实出现在文档中。回溯可能会有所帮助。加上一个可重现的例子,或者至少是导入行。
  • 基于文档 - 最新版本 0.9 (dev) 不使用 iid0.8.1 仍然有它。如果你真的需要iid,那么你必须降级它。如果它不起作用,那么您没有正确降级它。或者您必须安装 Python,然后在一个 Python 中降级它,但您使用不同的 Python 运行代码。

标签: python data-science svm bayessearchcv


【解决方案1】:

终于成功了,我使用 pip uninstall scikit-learn 卸载 scikit-learn,然后重新安装,之后我使用 pip install --upgrade scikit-optimize==0.23.3 安装了 scikit-optimize,所以之后当我运行我的代码时它工作得很好。

感谢@furas 的帮助

【讨论】:

  • 我尝试了您的解决方案,但它引发了错误:ERROR: No matching distribution found for scikit-optimize==0.23.3。你能帮忙吗?
猜你喜欢
  • 2021-09-20
  • 2012-12-11
  • 1970-01-01
  • 2017-10-16
  • 2020-10-22
  • 2021-11-17
  • 2016-11-01
  • 2021-10-15
  • 2021-12-30
相关资源
最近更新 更多