当我使用scikit-optimize
0.7.4版优化scikit-learn
0.23模型时:
rf = BayesSearchCV(
RandomForestClassifier(
min_samples_leaf=0.01, oob_score=True
), {
'n_estimators': Integer(30, 200),
'max_depth': Integer(10, 150),
'min_samples_split': Real(0.05, 0.3),
}, n_iter=32
)
当我运行rf.fit
时,它会说
File "C:\Users\cloudy\PyCharmProjects\clixove\venv\lib\site-packages\skopt\space\space.py", line 764, in rvs
if sp_version < (0, 16):
TypeError: '<' not supported between instances of 'Version' and 'tuple'
但是,当我简单地使用RandomForestClassifier
并对其进行拟合时,就不会出现错误。
那么,如何避免这个问题呢?谢谢大家!
完整的回溯如下
Traceback (most recent call last):
File "C:/Users/cloudy/PyCharmProjects/clixove/BasicML/classifier.py", line 106, in <module>
rf.fit(clf.data['X_train'], clf.data['Y_train'])
File "C:\Users\cloudy\PyCharmProjects\clixove\venv\lib\site-packages\skopt\searchcv.py", line 678, in fit
optim_result = self._step(
File "C:\Users\cloudy\PyCharmProjects\clixove\venv\lib\site-packages\skopt\searchcv.py", line 552, in _step
params = optimizer.ask(n_points=n_points)
File "C:\Users\cloudy\PyCharmProjects\clixove\venv\lib\site-packages\skopt\optimizer\optimizer.py", line 360, in ask
x = opt.ask()
File "C:\Users\cloudy\PyCharmProjects\clixove\venv\lib\site-packages\skopt\optimizer\optimizer.py", line 332, in ask
return self._ask()
File "C:\Users\cloudy\PyCharmProjects\clixove\venv\lib\site-packages\skopt\optimizer\optimizer.py", line 398, in _ask
return self.space.rvs(random_state=self.rng)[0]
File "C:\Users\cloudy\PyCharmProjects\clixove\venv\lib\site-packages\skopt\space\space.py", line 764, in rvs
if sp_version < (0, 16):
TypeError: '<' not supported between instances of 'Version' and 'tuple'
我已经解决了更改skopt/space/space.py行763-768的问题
进入
scikit学习的问题>;=0.23已在版本0.8.1中修复
以下是PIP安装:
参考:scikit-optimize 0.8.1
如果scikit学习版本对您的问题不重要,您可以通过
pip install -U scikit-learn == 0.20.3
将scikit学习版本降级为“0.20.3”相关问题 更多 >
编程相关推荐