在sklearn验证曲线的多个参数

问题描述 投票:0回答:1

我试图使用validation_curve功能sklearn。

train_scores, test_scores = validation_curve(DecisionTreeClassifier(), X_train, y_train,
param_name="max_depth",
scoring="f1",                                          
param_range=list(range(5,15,2)),
cv=5)

有没有一种方法,我可以将多个参数传递绘制该曲线。例如

param_name=["max_depth","min_samples_split"]

我在网上查,我无法找到这样的例子。有什么建议么?

scikit-learn
1个回答
0
投票

https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.validation_curve.html文档指出,你必须输入:

PARAM_NAME:将要改变的参数的字符串名称。

param_range:阵列状,形状(n_values,),其将被评估的参数的值。

这意味着你不能提供一个以上的参数变化和测试。事实上,导致情节是二元,是轴比分公制和横坐标的参数的变化序。

我相信你可以通过对一个适合两个参数,而持股不动其他的,即创造,你声明估计,当固定第一参数的不同值的多个验证曲线。

这种做法,翻译成代码,可以阅读:

max_depth_range = list(range(5, 15, 2))
min_samples_split = list(range(2, 10, 1))

for k in min_samples_split:
    train_scores, test_scores = validation_curve(DecisionTreeClassifier(min_samples_split=k), 
                                                 X_train, y_train,
                                                 param_name="max_depth",
                                                 scoring="f1",                                          
                                                 param_range=max_depth_range,
                                                 cv=5)
    #do something here with train_scores & test_scores
© www.soinside.com 2019 - 2024. All rights reserved.