先說(shuō)下環(huán)境:Win10+spyder+py3.6
- 控制CPU個(gè)數(shù)的參數(shù)
n_job
當(dāng)設(shè)置為1時(shí)程序能夠正常運(yùn)行督怜。 - 但是當(dāng)
n_job>1
或者n_job=-1
時(shí),程序會(huì)報(bào)錯(cuò)错蝴,報(bào)錯(cuò)內(nèi)容如下: -
通過(guò)大量查閱資料妓雾,以及很多人嘗試的標(biāo)準(zhǔn)解決方法如下:
- 按照該方法描述修改后炮温,CSDN有位博主確實(shí)能夠成功運(yùn)行了∞人埽可是這邊進(jìn)行了同樣的修改后堂污,問(wèn)題并沒(méi)有解決,還是出現(xiàn)上述錯(cuò)誤龄砰。
-
這時(shí)stackoverflow上有位大佬說(shuō)可以按如下方式解決:
- 按照他一波操作后敷鸦,依然沒(méi)什么卵用。
-
但是呢寝贡,在重新打開(kāi)spyder首次運(yùn)行程序時(shí),卻發(fā)生了以下的報(bào)錯(cuò)內(nèi)容值依,這讓人似乎感覺(jué)到了一線生機(jī):
- 之后再運(yùn)行都是出現(xiàn)錯(cuò)誤I的內(nèi)容圃泡。
- 總結(jié)一下程序發(fā)生錯(cuò)誤的問(wèn)題如下:
1.重啟spyder(相當(dāng)于重啟kernel),首次運(yùn)行程序會(huì)發(fā)生錯(cuò)誤II
2.之后無(wú)論怎樣運(yùn)行程序愿险,都是發(fā)生錯(cuò)誤I - 于是直覺(jué)告訴我錯(cuò)誤II才是本質(zhì)原因颇蜡,經(jīng)過(guò)一波操作后,設(shè)置
__spec__ = None
,成功解決該問(wèn)題辆亏。
貼下成功運(yùn)行的代碼:
from sklearn.datasets import load_wine
from sklearn.model_selection import GridSearchCV
from sklearn import svm
from sklearn.ensemble import BaggingClassifier
def Test():
data = load_wine()
Feat = data.data
Label = data.target
bag_clf = BaggingClassifier( base_estimator=svm.SVC(kernel='rbf'), bootstrap=True,n_jobs=-1)
bag_clf.fit(Feat,Label)
Params = [{"base_estimator__C":[1,2,3],
"base_estimator__gamma":[1.2,0.9],
"max_features":[0.3,0.4,0.5],
"max_samples":[0.9,0.8,0.7],
"n_estimators":[60,80,100],
"random_state":[120,100]}]
grid_search = GridSearchCV(bag_clf, Params, cv=5,verbose=1.1,n_jobs=-1)
grid_search.fit(Feat,Label)
print('bestparam=',grid_search.best_params_ ,'score=',grid_search.best_score_)
if __name__ == '__main__':
__spec__ = None
Test()
運(yùn)行結(jié)果如下: