我试图使用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"]
我在网上查,我无法找到这样的例子。有什么建议么?
在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