首页 > 解决方案 > KFold 验证中的 ROC AUC 指标

问题描述

在进行 KFold 验证时,在 Keras 中使用 ROC / AUC 作为指标而不是“准确性”的最佳方法是什么?我尝试用 sklearns 'roc_curve' 和 'auc' 替换 'accuracy',但这不起作用。

另外:如何访问“cross_val_score()”循环以绘制 ROC 曲线?

这是我的代码:

X = X.values
Y = Y.values

def create_baseline():
    model = Sequential()
    model.add(Dense(82, input_dim=82, kernel_initializer='normal', activation='relu'))
    model.add(Dense(50, activation='relu'))
    model.add(Dense(1, kernel_initializer='normal', activation='sigmoid'))
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
    return model

estimator = KerasClassifier(build_fn=create_baseline, epochs=100, batch_size=5, verbose=0)
kfold = KFold(n_splits=50, shuffle=True, random_state=True)
results = model_selection.cross_val_score(estimator, X, Y, cv=kfold)

print("Accuracy: %.3f%% (%.3f%%)" % (results.mean()*100.0, results.std()*100.0))

标签: pythonscikit-learnkerascross-validationroc

解决方案


推荐阅读