我正在尝试使用 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_))
是的,R^2分数可以是负数,它不是相关性而是决定系数,最大值为1.0,最小值为负无穷大。您可以从 scikit-learn documentation 获取此信息.
我是一名优秀的程序员,十分优秀!