【问题标题】:IPython ImportError: cannot import name LayoutIPython ImportError:无法导入名称布局
【发布时间】:2017-08-16 06:59:20
【问题描述】:

我正在尝试基于 this article 的 CatBoost

在它的代码中,CatBoost 在model.fit() 中有plot,所以我想在我的 IPython 上尝试一下。

这是我的 CatBoost 代码:

from catboost import CatBoostRegressor

# indicate categorical features for CatBoost
categorical_features_indices = np.where(X.dtypes != np.float)[0]

model=CatBoostRegressor(iterations=50, depth=3, learning_rate=0.1, 
loss_function='RMSE')
model.fit(X_train, y_train, 
cat_features=categorical_features_indices,
          use_best_model=True,
          eval_set=(X_validation, y_validation), plot=True)

但是,它无法显示任何情节并一直给我错误:

我确实安装了 ipywidgets 和 ipython。 你知道如何处理这个问题吗?

【问题讨论】:

  • 您将 ipython 作为笔记本还是 shell 运行?您是在虚拟环境中运行它吗?
  • 我将它作为笔记本运行。虚拟环境和非虚拟环境都试过了,都报这个错

标签: python plot ipython catboost


【解决方案1】:

终于解决了问题,现在可以看到这个情节了

在我的情况下,解决方案是安装Conda并创建一个conda虚拟环境,然后通过Conda安装ipywidgets。 让我在这里写下所有细节,希望它会有所帮助。 这可能只会帮助 Mac 用户

  1. 在此处下载 Conda:https://www.continuum.io/downloads
  2. 将 conda 添加到 $PATH: How to run Conda?
  3. 创建Conda虚拟环境conda create -n yourenvname python=x.x anaconda
  4. 激活conda虚拟环境source activate yourenvname
  5. 在这个虚拟环境中安装IPython Notebook(如果你已经有用户pythonvirtualenv并为此安装了IPython,你可以跳过这一步):
    • (yourenvname)$ pip install jupyter
    • (yourenvname)$ pip install ipykernel
    • (yourenvname)$ python -m ipykernel install --user --name testenv --display-name "Python2 (yourenvname)",如果你有多个ipykernel,这里testenv也应该改成别的名字
  6. 安装 ipywidgets,(yourenvname)$ conda install ipywidgets --no-deps
  7. 安装 catboost,(yourenvname)$ pip install catboost
  8. 打开 Jupyter Notebook jupyter notebook 并在 Python2 (yourenvname) 下创建一个新笔记本,然后它应该可以工作了

注意:如果不起作用,在第 8 步之前,试试这个:

  • pip install widgetsnbextension
  • jupyter nbextension enable --py widgetsnbextension --sys-prefix

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 2014-10-10
    • 2014-09-20
    • 2014-08-28
    相关资源
    最近更新 更多