首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RandomizedSearchCV的PermissionError

使用RandomizedSearchCV的PermissionError
EN

Stack Overflow用户
提问于 2019-06-05 22:10:56
回答 1查看 208关注 0票数 2

我试图使用RandomizedSearchCV来调优一个随机森林的超参数,但在运行代码后不久我得到了一个PermissionError。

最初的运行没有PermissionError (但是它抛出了一个invalid handle错误),但是现在我根本不能运行代码。据我所知,当代码试图在没有适当权限的情况下格式化驱动器时,通常会抛出WinError 5,但据我所知,RandomizedSearch不会试图改变任何东西。我还没有尝试以管理员身份运行,但访问该帐户将很困难,所以我正在尝试找出是否有其他方法来解决这个问题。我正在运行Python 3.7。

代码语言:javascript
复制
n_estimators = [int(x) for x in np.linspace(start=200, stop=2000, num=10)]
max_features = ['auto', 'sqrt']
max_depth = [int(x) for x in np.linspace(10, 110, num=11)]
max_depth.append(None)
min_samples_split = [2, 5, 10]
min_samples_leaf = [1, 2, 4]
bootstrap = [True, False]

random_grid = {'n_estimators': n_estimators,
               'max_features': max_features,
               'max_depth': max_depth,
               'min_samples_split': min_samples_split,
               'min_samples_leaf': min_samples_leaf,
               'bootstrap': bootstrap}

print(random_grid)

constructed_data = pd.read_csv('Examples/Test_data.CSV')

forest = RandomForestClassifier()

forest.fit(train, train_labels)

forest_random = RandomizedSearchCV(estimator=forest, param_distributions=random_grid, n_iter=100,
                                   cv=3, verbose=2, n_jobs=-1)

forest_random.fit(train, train_labels)

预期:没有错误和建议的超参数值

实际:

代码语言:javascript
复制
Fitting 3 folds for each of 100 candidates, totalling 300 fits
[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.
exception calling callback for <Future at 0x1013bc90 state=finished raised BrokenProcessPool>
joblib.externals.loky.process_executor._RemoteTraceback: 
'''
Traceback (most recent call last):
  File "C:\Users\dalinar\PycharmProjects\visualizer\venv\lib\site-packages\joblib\externals\loky\process_executor.py", line 391, in _process_worker
    call_item = call_queue.get(block=True, timeout=timeout)
  File "C:\Users\dalinar\AppData\Local\Programs\Python\Python37-32\lib\multiprocessing\queues.py", line 99, in get
    if not self._rlock.acquire(block, timeout):
PermissionError: [WinError 5] Access is denied
'''

在这个异常之后还抛出了其他异常,但上面的错误是其他异常的“直接原因”。

EN

回答 1

Stack Overflow用户

发布于 2019-06-27 00:59:16

看起来您在并行处理方面遇到了问题,因此请在创建RandomizedSearchCV()对象时尝试设置n_jobs=1

此外,您可能希望了解一下Parallalism in gridsearcCV is ending up with a permission error

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56462252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档