刚接触python不久,尽管只是想调用一下hyperopt对模型进行一些优化,也还是费了不少的力气。接下来对之前遇到的一些小问题进行记录:
问题1:如果将acaconda环境里没有自带的hyperopt库导入acacoda呢?目前知道的方法有两种:
方法1:首先在pycharm里的setting界面里面里,将解释器设置为acaconda安装目录下的python解释器,然后通过点击右上角的‘+’导出python第三方库选择安装界面,点击相应的库函数安装即可
方法2:在python的第三方网站(https://pypi.org/)中找到相应的库文件,通过打开‘Acaconda Prompt’命令窗口,输入以下格式命令:pipinstall+pip的文件路径+下载的文件名+文件格式。注意必须要将下载的文件放在D:\python\Lib\site-packages\文件夹里面
pip install D:\python\Lib\site-packages\networkx-1.11-py2.py3-none-any.whl
问题2:之前一直通过寻找网上的使用hyperopt对模型进行优化的例程,例程都是相似的,但是自己通过相应的修改之后,程序却始终在报错。比如说best = fmin(fn=random_forest, space=param_dist, algo=algo, max_evals=50),我看了所有的例程中random_forest后面都是不需要填充参数的,但是自己实现的时候却总是会出现错误‘'generator' object is not subscriptable’。还有参数字典里的数据始终无法正确读取。
我很疑惑,上网查阅了一些大神的帖子之后发现是因为networkx函数库版本的问题。在安装Hyperopt时 会自动安装依赖库 networkx-2.1, 结果发现其并不支持 Hyperopt-0.1,解决方法就是卸载2.1版本的networkx,安装networkx1.1版本。问题得到解决。