【问题标题】:Scikit learn KerasClassifer evaluation errorScikit学习KerasClassifer评估错误
【发布时间】:2019-02-28 13:57:40
【问题描述】:

我为 k 折验证创建了一个 Keras 分类器。下面是构建分类器的函数。

def build_classifier():

classifier = Sequential()
classifier.add(Dense(activation="relu", input_dim=11, units=6, kernel_initializer="uniform"))
classifier.add(Dense(activation="relu", units=6, kernel_initializer="uniform"))
classifier.add(Dense(activation="sigmoid", units=1, kernel_initializer="uniform"))
classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])

return classifier

我已经将分类器初始化如下。

    classfier = KerasClassifier(build_fn = build_classifier, batch_size=10, epochs=100)

我正在尝试从这 10 次验证中获得准确度分数。

    accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = 10, n_jobs = -1)

但是它显示了一个 TypeError:

TypeError:如果未指定评分,则传递的估计器应 有一个“得分”的方法。估算器 做 不是。

【问题讨论】:

  • 显示导入。您使用的是哪个版本的 keras 和 scikit-learn?
  • keras v2.2.2 和 scikit-learn v0.19.1

标签: python scikit-learn keras


【解决方案1】:

在 cross_val_score 中通过 score="accuracy" 应该可以工作。
这里解决了类似的问题:Scikit-learn TypeError: If no scoring is specified, the estimator passed should have a 'score' method

【讨论】:

  • 我确实尝试添加评分 =“准确度”,但这是我得到的错误。无法克隆对象“”(类型 ):它似乎不是 scikit-learn 估计器,因为它没有实现'get_params' 方法。
猜你喜欢
  • 2016-12-29
  • 2014-03-15
  • 1970-01-01
  • 2014-02-02
  • 1970-01-01
  • 2017-04-07
  • 2021-12-30
  • 2016-11-11
  • 2018-08-17
相关资源
最近更新 更多