Python RandomizedSearchCV需要更长的时间,搜索的元素更少

Python RandomizedSearchCV需要更长的时间,搜索的元素更少,python,machine-learning,scikit-learn,hyperparameters,Python,Machine Learning,Scikit Learn,Hyperparameters,我有一个奇怪的问题,我正在使用随机搜索CV优化我的参数 para_RS={“最大深度”:randint(1,70), “最大功能”:[“log2”,“sqrt”], “min_samples_leaf”:randint(5,50), “标准”:[“熵”,“基尼”], “等级重量”:[“平衡”], “最大叶节点”:randint(2,20) } dt=DecisionTreeClassifier() 如果我包括所有这些参数,输出将在2-3分钟内完成,但是如果我删除所有参数并只保留下面的参数,那么

我有一个奇怪的问题,我正在使用随机搜索CV优化我的参数

para_RS={“最大深度”:randint(1,70),
“最大功能”:[“log2”,“sqrt”],
“min_samples_leaf”:randint(5,50),
“标准”:[“熵”,“基尼”],
“等级重量”:[“平衡”],
“最大叶节点”:randint(2,20)
}
dt=DecisionTreeClassifier()
如果我包括所有这些参数,输出将在2-3分钟内完成,但是如果我删除所有参数并只保留下面的参数,那么运行将花费很长时间,我必须关闭笔记本

段落={
“最大深度”:randint(1,70)
}
而且,如果我删除更少,它需要很长时间运行(5-10分钟)。 代码如下:

if(randomsearch==True):
tick=time.time()
打印(“随机搜索开始”)
rs=随机搜索cv(估计值=dt,cv=5,参数分布=para_rs,
n_jobs=4,n_iter=30,scoring=“roc\u auc”,return\u train\u score=True)
rs.fit(列车外部、列车外部)
#其他与问题无关的代码。。。
打印(“随机搜索结束”)

这是由于以下因素的随机性造成的:

"max_depth": randint(1,70)
"max_leaf_nodes":randint(2,20)
randint(1,70)
将返回一个介于1,70之间的整数。因此,在不同的运行期间,会生成不同的
max_depth

因此,在特定运行期间,可能会产生非常高的价值。
DecisionTreeClassifier
的速度受
max\u depth
的值和
max\u leaf\u节点的影响。如果这些都是非常大的,时间将是非常大的


另外,我不确定您如何能够运行此代码。因为RandomizedSearchCV采用了iterables字典的参数网格。但是您的代码将为“max_depth”、“max_leaf_nodes”生成一个int,而不是数组或iterable。所以它应该抛出一个错误。您使用的是哪个版本的sklearn?或者您在此处显示的代码与实际代码不同?

您可以关闭此窗口,因为当我开始在分类器和RandomSearchCV中使用随机种子时,问题似乎已经解决了。感谢所有的帮助。

感谢Vivek的回答,但是,我怀疑深度是否是原因,好像我提到了所有参数,只有使用相同randint(1,70)的最大深度,我看到了时间上的巨大差异。两者在最大深度(介于18-20之间)上的结果几乎相同。我使用这两种设置(使用所有参数和仅使用最大深度)运行了大约30-40次,每次使用所有参数都会在2-3分钟内完成,最大深度将永远持续。我正在运行sklearn版本0.19.1和python版本3.6。此外,“n_iter”参数是驱动此RandomSearchCV运行多少次的参数,每次运行时它都会调用参数搜索空间并通过randint函数获取一个数字。@user6658936
randint()
返回一个int,而不是一个可以在每个iter中反复调用的分布。
RandomizedSearchCV
。我理解randint()返回一个数字,但“n_iter”参数是该随机搜索CV的驱动次数。每次基于该参数调用RandomSearchCV时,它都会从randint调用该参数的一个数字。我已经证实了这一点。如果我只做n_iter=10并且使用上面的代码,它将返回随机选取的10个最大深度值。以下是cv_结果参数的输出:[{'class_weight':'balanced','criteria':'entropy','max_depth':6,'max_features':'sqrt','max_leaf_nodes':11,'min_samples_leaf':44},{'class_weight':'balanced','criterial':'gini','max_depth':3,'max_features':'sqrt','max_leaf_nodes nodes 4,'min_samples_leaf':7},{'class_weight':'balanced','Criteria':'gini','max_depth':4,'max_features':'sqrt','max_leaf_nodes':17,'min_samples_leaf':42},