我正在尝试为定制的无监督模型的sklearn管道找到最佳的超参数配置,该配置将我的数据转换为矢量表示形式,然后将其用于随机森林分类器中以预测标签。但是,当我使用Sklearn的随机搜索时,我常常会得到不同的结果,因为即使HP组合不同,所有分组的训练/测试分数也完全相同。
当我仅在参数网格中仅给出很少的值时(例如对于n_estimators仅[1,10]而不是list(range(1,10))。),这不会发生令人困惑的事情。
我的网格如下:
param_grid = dict(n2vec__dim=list(range(16,266)),
n2vec__p=[0.5,1,1.5,2],
n2vec__path_length=list(range(1,26)),
n2vec__num_paths=list(range(1,20)),
n2vec__q=[0.5,1,1.5,2],
randomforestclassifier__n_estimators=[5,10,20],
randomforestclassifier__criterion=['gini','entropy'],
randomforestclassifier__max_features=['auto',None,'log2'],
randomforestclassifier__min_samples_split =[2,2,3,5,6,7,8,9],
randomforestclassifier__min_samples_leaf =[1,5],
randomforestclassifier__min_impurity_decrease =[0,1,20])
grid_search = RandomizedSearchCV(pipe, param_distributions=param_grid, n_iter=5,
scoring='f1_micro',return_train_score=True, n_jobs=4)
有人知道这可能是什么原因吗?
任何帮助将不胜感激。