Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在管道上工作时,RandomSearchCV太慢_Python 3.x_Scikit Learn_Xgboost_Feature Selection_Hyperparameters - Fatal编程技术网

Python 3.x 在管道上工作时,RandomSearchCV太慢

Python 3.x 在管道上工作时,RandomSearchCV太慢,python-3.x,scikit-learn,xgboost,feature-selection,hyperparameters,Python 3.x,Scikit Learn,Xgboost,Feature Selection,Hyperparameters,我正在测试使用超参数运行功能选择的方法 我正在运行功能选择算法SequentialFeatureSelection和超参数算法RandomizedSearchCV和xgboost模型 我运行以下代码: from xgboost import XGBClassifier from mlxtend.feature_selection import SequentialFeatureSelector from sklearn.pipeline import Pipeline from sklearn.

我正在测试使用超参数运行功能选择的方法

我正在运行功能选择算法
SequentialFeatureSelection
和超参数算法
RandomizedSearchCV
xgboost
模型

我运行以下代码:

from xgboost import XGBClassifier
from mlxtend.feature_selection import SequentialFeatureSelector
from sklearn.pipeline import Pipeline
from sklearn.model_selection import RandomizedSearchCV
import pandas as pd

def main():

    df = pd.read_csv("input.csv")
    x = df[['f1','f2','f3', 'f4', 'f5', 'f6','f7','f8']]
    y = df[['y']]
    model = XGBClassifier(n_jobs=-1)
    sfs = SequentialFeatureSelector(model, k_features="best", forward=True, floating=False, scoring="accuracy", cv=2, n_jobs=-1)
    params = {'xgboost__max_depth': [2, 4], 'sfs__k_features': [1, 4]}
    pipe = Pipeline([('sfs', sfs), ('xgboost', model)])
    randomized = RandomizedSearchCV(estimator=pipe, param_distributions=params,n_iter=2,cv=2,random_state=40,scoring='accuracy',refit=True,n_jobs=-1)
    res = randomized.fit(x.values,y.values)

if __name__=='__main__':
    main()
文件
input.csv
只有39行数据(不包括标题):

如您所见,数据量太小,需要优化的参数也很少

我检查了CPU的数量:

lscpu 
我得到:

CPU(s):              12
因此,可以创建12个线程并并行运行

我查看了这篇帖子:

但是我已经使用了
n\u jobs=-1


那为什么它跑得太慢了?(超过15分钟!!!)?这应该只需要一瞬间,我以前认为为嵌套作业设置n_jobs>1是有问题的;尝试将功能选择器或随机搜索设置为
n\u jobs=1
。然而,在Colab上尝试您的脚本和一些变体,一切都很好,最多只需要几秒钟。您使用的是什么版本的sklearn?另请参见scikit learn==0.24.1I我尝试将XGBClassifier和SequentialFeatureSelector设置为n_jobs=1,但结果相同。。。
CPU(s):              12