【发布时间】: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