【问题标题】:I get a Permission Error when I want to use 'GridSearchCV'当我想使用“GridSearchCV”时出现权限错误
【发布时间】:2019-02-18 09:09:37
【问题描述】:

我想使用 GridSearchCV 来优化值。当我这样做时,我得到了权限错误和类似的错误。

# Data
dataset = pd.read_csv('Social_Network_Ads.csv')
X = dataset.iloc[:, [2, 3]].values
y = dataset.iloc[:, 4].values

# Scaling
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X = sc.fit_transform(X)

# SVM
from sklearn.svm import SVC
classifier = SVC(kernel='rbf', random_state=0)

问题在此之后开始。

# Grid Search with Cross Validation (Params Optimization)
from sklearn.model_selection import GridSearchCV
p = [{'C': [1, 2, 3, 4, 5], 'Kernel':['linear']},
     {'C': [1, 10, 100, 1000], 'kernel': ['rbf'],
      'gamma': [1, 0.5, 0.1, 0.01, 0.001]}]

gs = GridSearchCV(estimator=classifier, param_grid=p,
                  scoring='accuracy', cv=10, n_jobs=-1)
grid_search = gs.fit(X, y)
bestScore = grid_search.best_score_
bestParams = grid_search.best_params_
print(bestScore, bestParams)

错误信息如下。 这只是一部分,因为错误太长了。

Traceback (most recent call last):
File "C:\Users\user\PycharmProjects\MachineLearning\venv\lib\site- 
packages\sklearn\externals\joblib\externals\loky\process_executor.py", line 
391, in _process_worker
call_item = call_queue.get(block=True, timeout=timeout)
File 
C:\Users\user\AppData\Local\Programs\Python\Python37\lib
\multiprocessing\queue 
s.py", line 99, in get
    if not self._rlock.acquire(block, timeout):
    PermissionError: [WinError 5] Erişim engellendi

【问题讨论】:

  • 摆脱n_jobs = -1
  • 这不起作用
  • 你能添加整个错误堆栈吗?

标签: python machine-learning cross-validation grid-search


【解决方案1】:

您可以在以下范围内添加完整的sklearn代码并尝试。

from joblib import parallel_backend

with parallel_backend('threading', n_jobs=2):
    #your sklearn code here

这解决了我PermissionError: [WinError 5] Access is denied的问题。

【讨论】:

    猜你喜欢
    • 2015-11-09
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 2018-05-04
    相关资源
    最近更新 更多