Python 在sklearn管道中的哪里设置n_作业';Can';t pickle<;功能<;lambda>;错误';
试图找出如何通过n_jobs=-1参数和交叉验证并行化我的Sklearn管道。。。尝试了几个不同的步骤,但出现了pickle错误Python 在sklearn管道中的哪里设置n_作业';Can';t pickle<;功能<;lambda>;错误';,python,python-3.x,scikit-learn,Python,Python 3.x,Scikit Learn,试图找出如何通过n_jobs=-1参数和交叉验证并行化我的Sklearn管道。。。尝试了几个不同的步骤,但出现了pickle错误 n_jobs=-1在FeatureUnion中 n_作业在分类器中=-1 n_jobs=-1在cv k倍中 print('sklearn version=>{}.format(sk.\uuuuuu version\uuuuuu)) sklearn版本=>0.18.1 管道=管道([\ ('unionPipeLines',FeatureUnion(\ 变压器列表=[
- n_jobs=-1在FeatureUnion中
- n_作业在分类器中=-1
- n_jobs=-1在cv k倍中
print('sklearn version=>{}.format(sk.\uuuuuu version\uuuuuu))
sklearn版本=>0.18.1
管道=管道([\
('unionPipeLines',FeatureUnion(\
变压器列表=[\
(“功能1”,管道([\
('con_功能',处理数量数据)\
('scales',StandardScaler())\
])),\
(“功能2”,管道([\
(“cat_功能”,处理cat_数据)\
])),\
],n_jobs=-1\
)),\
('algs',RandomForestClassifier(n_jobs=-1)))
skf=层状褶皱(n_分裂=4\
随机状态=11\
洗牌=真)
cv_模型=随机搜索cv(管道\
参数分布=网格\
n_iter=n\
cv=skf\
n_作业=-1)
cv_模型拟合(X_系列、y_系列)
PicklingError:无法pickle:在_main上查找属性失败
- 如何确认是否正在使用磁芯
- 正确的n_作业放置在哪里,以便管道在过程中使用多个核
- 为什么我会犯这个错误
print('The sklearn version => {}'.format(sk.__version__))
The sklearn version => 0.18.1
pipeline = Pipeline([\
('unionPipeLines', FeatureUnion(\
transformer_list = [\
('features1', Pipeline([\
('con_features', process_num_data),\
('scales', StandardScaler())\
])),\
('features2', Pipeline([\
('cat_features', process_cat_data)\
])),\
], n_jobs=-1\
)),\
('algs', RandomForestClassifier(n_jobs=-1))])
skf = StratifiedKFold(n_splits=4,\
random_state=11,\
shuffle=True)
cv_model = RandomizedSearchCV(pipeline,\
param_distributions=grid,\
n_iter=n,\
cv=skf,\
n_jobs=-1)
cv_model.fit(X_train, y_train)
PicklingError: Can't pickle <function <lambda> at 0x7f5620809158>: attribute lookup <lambda> on __main__ failed