sklearn验证曲线中的多个参数

时间:2019-02-03 21:02:31

标签: scikit-learn

我正在尝试在sklearn中使用validate_curve函数。

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"]

我在网上检查了,找不到这样的例子。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

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

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

param_range :类似数组的形状(n个值) 将要评估的参数值。

暗示您不能提供多个参数来进行更改和测试。 实际上,生成的图是双变量的,即序数轴是得分指标,横坐标是参数的变化。

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

翻译成代码的这种方法可以读为:

var propertyName = nameof(MyAbstractClass.ConcreteTypeEnum); 
// propertyName is now "ConcreteTypeEnum"
var className = nameof(MyAbstractClass);
// className is now "MyAbstractClass"