【问题标题】:Setting the scoring parameter of RandomizedSeachCV to r2将 RandomizedSeachCV 的打分参数设置为 r2
【发布时间】:2019-08-17 13:06:34
【问题描述】:

我正在尝试使用来自 sklearn 的randomizedSearchCV() 来找到在使用 keras 构建的神经网络模型中使用的最佳参数。我希望它根据 r2 指标“评分”——我运行时它不会抛出任何错误,但运行后它说 best_score_ 为 -1.436。

这不是有效的 r2 指标(是吗?)。所以我想知道是否有人可以看看下面的代码,看看他们是否能发现

a) 这是-1.436 的best_score_ 是什么?

b) 如何修改以下代码以使函数返回 r2 指标?

我的神经网络模型叫做model4。 我在RandomiszedSearchCV 中添加了“scoring = 'r2'”作为参数,我认为这是为了告诉它使用这个作为分数

这是我用于RandomizedSearchCV() 的代码:

model5 = KerasClassifier(build_fn=get_model4, epochs = 10)

params = {'num_layers' : [1,2,3,4], 'size_layers' : [5,10,25,100],'batchnorm' : [True,False], 'act' : ['relu','sigmoid','tanh'], 'lossfn' : ['mean_squared_error','mean_absolute_error','mean_squared_logarithmic_error'], 'lrate' : [0.01,0.001,0.0001]}


random_search = RandomizedSearchCV(model5, param_distributions=params, cv=KFold(3), scoring='r2')

random_search_results = random_search.fit(inputs,decisions)

print("Best: " + str(random_search_results.best_score_)+" using:"+str(random_search_results.best_params_))

【问题讨论】:

    标签: python keras scikit-learn


    【解决方案1】:

    是的,R^2 分数可以是负数,它不是相关性而是决定系数,最大值为 1.0,如果负无穷则最小值。您可以从 scikit-learn documentation 获取此信息。

    【讨论】:

    • 哦!我明白了,我误解了——我认为它的范围可能是-1。这是个好消息(尽管到目前为止我的模型显然很差!)我会继续努力寻找更好的模型。非常感谢您的快速回答!
    猜你喜欢
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 2020-12-12
    • 2011-12-18
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 2012-02-05
    相关资源
    最近更新 更多