【问题标题】:numpy.float64' object is not callable - hyperparameter tuningnumpy.float64' 对象不可调用 - 超参数调整
【发布时间】:2021-05-24 02:28:04
【问题描述】:

我正在尝试进行超参数调整,并且每次运行此代码时。

from sklearn.model_selection import GridSearchCV

param_grid = {'C':[0,1,1,100,1000], 'kernel':['rbf','poly','sigmoid','linear'],'degree':[1,2,3,4,5,6]}
grid =GridSearchCV(svc.sc(),param_grid)
grid.fit(X_train,y_train)

我收到此错误

    TypeError                                 Traceback (most recent call last)
<ipython-input-64-74de9eeb3cae> in <module>
      3 
      4 param_grid = {'C':[0,1,1,100,1000], 'kernel':['rbf','poly','sigmoid','linear'],'degree':[1,2,3,4,5,6]}
----> 5 grid =GridSearchCV(svc.sc(),param_grid)
      6 grid.fit(X_train,y_train)

TypeError: 'numpy.float64' object is not callable

知道该怎么做吗? svc.sc 也是定义模型的方式。

【问题讨论】:

  • 欢迎来到 SO;下一次,请花点时间看看如何正确格式化您的代码 sn-ps(现在为您完成)。
  • 请发布完整的错误跟踪。 svc.sc() 是什么?
  • 显示您是如何准确定义svc.sc 模型的。不在这里 - 编辑和更新您的帖子。

标签: python scikit-learn svm


【解决方案1】:

svc.sc() 是什么?无论哪种方式,你可能不打算在那个时候调用它,只需将它作为回调传递给GridSearchCV,即去掉括号:

grid = GridSearchCV(svc.sc, param_grid)

【讨论】:

  • 您好,所以基本上我为 svm 编写了这样的模型:svc = SVC(gamma='auto') svc.fit(X_train, y_train) y_pred = svc.predict(X_test) svc。 sc = svc.score(X_test, y_test) svc.sc
  • 我在进行更改时也遇到了这个错误。 TypeError: estimator 应该是一个实现 'fit' 方法的估计器,通过了 0.9412915851272016。谢谢
  • @IvanChowdhury 那么它应该是grid = GridSearchCV(svc, param_grid)。您应该将 model 传递给 GridSearchCV,而不是数字;这就是为什么我们从一开始就要求发布您如何定义模型(在您的帖子中,不是在 cmets 中)。
猜你喜欢
  • 1970-01-01
  • 2020-10-03
  • 1970-01-01
  • 1970-01-01
  • 2021-01-27
  • 2021-11-08
  • 1970-01-01
  • 2017-06-22
  • 2020-09-11
相关资源
最近更新 更多