调用sklearn的RandomForestClassifier和ExtraTreeClassifier出现的参数错误
今天准备在集群上运行我的新代码的时候,突然冒出来这个错误,有点懵,查阅资料找到了原因。
报错如下:
ValueError: Invalid parameter min_impurity_decrease for estimator DecisionTreeClassifier. Check the list of available parameters with
estimator.get_params().keys()
.
一开始把将断点设置在出错的文件(sklearn.base.py),然后依次调试,发现estmator.params一切都正常,仔细观察报错的地方—> Invalid parameter min_impurity_decrease for estimator DecisionTreeClassifier.
这说明min_impurity_decrease参数在DecisionTreeClassifier中是没有的,或者是无效的。
接下来查看服务器上sklearn的版本是 0.18.1,而我在本地调试通过sklearn的版本信息0.19.1
查看sklearn 0.19.1的RandomForestClassifier的官方文档详细信息。如下:
仔细看min_impurity_decrease 参数
所以在sklearn 0.18.1中是没有min_impurity_decrease 这个参数的。如果要用这个参数的话就要将sklearn的版本升级到 0.19.1。就可以了
但是服务器是不能联网的,所以呀,又要离线安装,离线安装就要考虑要不要手动卸载以前的sklearn 0.18.1,事实是,不需要卸载以前的sklearn版本,直接下载sklrean 0.19.1的安装包,然后pip install 包名就好了。pip会自动卸载以前的sklearn版本,然后安装新版本。
示意图如下:
然后程序就正常运行啦,have a nice day!