gpt4 book ai didi

python - 如何正确地将 GridSearchCV 与 cross_val_score 结合使用?

转载 作者:行者123 更新时间:2023-12-01 09:18:13 26 4
gpt4 key购买 nike

目前我有以下代码:

我首先将数据集分为训练集和测试集。然后我运行 GridSearchCV 来尝试找到最佳参数。找到最佳参数后,我通过 cross_val_score 使用参数评估分类器。这是一个可以接受的方法吗?

最佳答案

您可以使用make_scorer在GridSearchCV对象内指定一个scoring参数,如下所示

from sklearn.metrics import precision_score, make_scorer
prec_metric = make_scorer(precision_score)
grid_search = GridSearchCV(estimator = logreg, scoring= prec_metric param_grid = param_grid, cv = 3, n_jobs=-1, verbose=3)

拟合数据后,您可以使用 results_ 属性来访问这样的分数

results = grid_search.results_

{
'param_kernel': masked_array(data = ['poly', 'poly', 'rbf', 'rbf'],
mask = [False False False False]...)
'param_gamma': masked_array(data = [-- -- 0.1 0.2],
mask = [ True True False False]...),
'param_degree': masked_array(data = [2.0 3.0 -- --],
mask = [False False True True]...),
'split0_test_score' : [0.8, 0.7, 0.8, 0.9],
'split1_test_score' : [0.82, 0.5, 0.7, 0.78],
'mean_test_score' : [0.81, 0.60, 0.75, 0.82],
'std_test_score' : [0.02, 0.01, 0.03, 0.03],
'rank_test_score' : [2, 4, 3, 1],
'split0_train_score' : [0.8, 0.9, 0.7],
'split1_train_score' : [0.82, 0.5, 0.7],
'mean_train_score' : [0.81, 0.7, 0.7],
'std_train_score' : [0.03, 0.03, 0.04],
'mean_fit_time' : [0.73, 0.63, 0.43, 0.49],
'std_fit_time' : [0.01, 0.02, 0.01, 0.01],
'mean_score_time' : [0.007, 0.06, 0.04, 0.04],
'std_score_time' : [0.001, 0.002, 0.003, 0.005],
'params' : [{'kernel': 'poly', 'degree': 2}, ...],
}

您还可以使用多个指标进行评估,如上所述 in this example .

您可以创建自己的自定义指标或使用 one of the metrics specified here .

更新:基于on this answer ,然后您应该在将整个数据拟合到 cross_val_score 之前从 grid_search 提供分类器,以防止任何数据泄漏。

关于python - 如何正确地将 GridSearchCV 与 cross_val_score 结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51037079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com