Scikit learn sklearn验证曲线中的多个参数

Scikit learn sklearn验证曲线中的多个参数,scikit-learn,Scikit Learn,我试图在sklearn中使用validation_曲线函数 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) 是否有一种方法可以传递

我试图在sklearn中使用validation_曲线函数

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"]
我在网上查过,找不到这样的例子。有什么建议吗?

您必须输入的文档:

参数名称:字符串 将要更改的参数的名称

参数范围:类似数组的形状(n_值) 将要计算的参数的值

这意味着您不能提供多个参数进行更改和测试。 事实上,生成的图是双变量的,即得分度量的序数轴和参数变化的横坐标

我相信,您可以通过测试一个参数,同时固定另一个参数来拟合两个参数,即为声明估计器时固定的第一个参数的不同值创建多个验证曲线

将这种方法翻译成代码,可以理解为:

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

你能给我解释一下你的问题吗?绘制这个需要非常长的时间-你能不能不绘制网格搜索的结果?实际上你正在探索DecisionTreeClassifier的不同设置的验证曲线,你确实需要迭代这些不同的集。为了缩短所需时间,您必须对cv折叠进行操作(通过减少它们)或采样您的训练数据。很抱歉,您说我需要使用验证曲线?你花了多长时间运行上面的。。非常感谢。。