【问题标题】:How to update sklearn in microsoft azure notebooks?如何在 Microsoft azure notebooks 中更新 sklearn?
【发布时间】:2020-04-28 04:01:14
【问题描述】:

我是机器学习的新手,我正在查看一些 Scikit-Learn 文档。 我在 Microsoft Azure 上使用帐户 https://notebooks.azure.com/

现在我正在尝试运行此示例的代码:

https://scikit-learn.org/stable/auto_examples/cluster/plot_agglomerative_dendrogram.html.

我得到以下错误

---------------------------------------------------------------------------
   TypeError                                 Traceback (most recent call last)
    <ipython-input-23-fc0d954d99ec> in <module>
 44 
 45 # setting distance_threshold=0 ensures we compute the full tree.
---> 46 model = AgglomerativeClustering(distance_threshold=0, n_clusters=None)
 47 
 48 model = model.fit(X)

   TypeError: __init__() got an unexpected keyword argument 'distance_threshold'

我进行了搜索,问题是我有 sklearn '0.20.3' 版本,为了运行该代码,我需要 0.22 版本。 我一直在尝试用

更新 sklearn
!pip install --update sklearn

并得到这个结果:

Usage:   
pip install [options] <requirement specifier> [package-index-options] ...
pip install [options] -r <requirements file> [package-index-options] ...
pip install [options] [-e] <vcs project url> ...
pip install [options] [-e] <local project path> ...
pip install [options] <archive url/path> ...

no such option: --update

在网上搜索,似乎在尝试更新 jupyter notebook 中的 sklearn 时出现了一些问题,但通常答案与 Anaconda Jupyter notebooks 相关,而不是与 Azure notebooks 相关。

我将不胜感激任何解决此问题的提示。

【问题讨论】:

    标签: python azure scikit-learn jupyter-notebook


    【解决方案1】:

    注意事项:

    • 如果您已经导入了 sklearn(即使使用 %autoreload 2 魔法),则需要重新启动内核。
    • 如果您将内核从默认值更改(例如,从 Python 3.6 - AzureML3.8),您的 PATH 可能没有遵循(请参阅 !which pip)并且您可能安装在错误的内核中。要在 3.8 中安装,我必须运行:
    ! /anaconda/envs/azureml_py38/bin/pip install --user -U scikit-learn
    

    conda /anaconda/envs/azureml_py38/bin/conda install -y scikit-learn==0.24.2 的技巧相同。 我不相信 conda 在这种情况下会有任何优势,除非作为在其爬行依赖解析期间喝咖啡的借口。

    Python 3.8 - Azure ML 中从 0.22 升级到 0.24.2 仍然会产生一些错误消息,但如果您不使用这些包(甚至可能是)

    错误:raiwidgets 0.4.0 需要 ipython==7.16.1,但您将拥有不兼容的 ipython 7.18.1。
    错误:raiwidgets 0.4.0 需要 jinja2==2.11.1,但您将拥有不兼容的 jinja2 2.11.2。

    【讨论】:

      【解决方案2】:

      要更新 sklearn,请尝试使用以下命令:

      pip install -U scikit-learn 
      

      这对我有用。

      【讨论】:

      • 没用。显示的错误是:错误:azureml-train-automl 1.0.72 需要 onnxmltools==1.4.1,但您将拥有不兼容的 onnxmltools 1.6.0。错误:azureml-train-automl 1.0.72 要求 scikit-learn=0.19.0,但您将拥有不兼容的 scikit-learn 0.22.1。错误:azureml-automl-core 1.0.72.1 需要 onnxmltools==1.4.1,但您将拥有不兼容的 onnxmltools 1.6.0。错误:azureml-automl-core 1.0.72.1 需要 scikit-learn=0.19.0,但您需要 scikit-learn 0.22.1,这是不兼容的。
      • 在评论错误中说“azureml-train-automl 1.0.72 有要求 onnxmltools==1.4.1”,这意味着您拥有版本 1.0.72 的 azureml-train-automl支持老版本的onnxmltools,即1.4.1。您现在拥有最新版本的 onnxmltools,即 1.6.0。 pypi.org/project/onnxmltools 。请卸载并重新安装 1.4.1 版本的 onnxmltools。 pypi.org/project/onnxmltools/#history 。此链接有早期版本,可下载。
      • 我修好了。不再有任何错误消息。仍然没有得到更新的 sklearn。要求已经是最新的:scikit-learn 在 /home/nbuser/anaconda3_501/lib/python3.6/site-packages (0.22.1)...sklearn.__version__ 总是相同的 0.20.3
      • 现在可以使用以下命令更新 sklearn:pip install --user --upgrade scikit-learn==0.22.1
      • 它适用于 Anaconda Jupyter 笔记本。不在 Azure 笔记本中。您也可以谷歌“需要更新 Azure ML 工作室中的 scikit 学习包”
      【解决方案3】:

      这对我有用:

      pip install --upgrade pandas
      

      【讨论】:

        【解决方案4】:

        https://notebooks.azure.com/help/jupyter-notebooks/package-installation

        !pip !pip install scikit-learn==0.22.1
        

        选项不起作用,即使它显示了

        Successfully installed joblib-0.14.1 scikit-learn-0.22.1
        

        相反,

        !conda install scikit-learn==0.22.1  -y
        

        成功了,我正确地执行了代码。花了几分钟。

        如上所述,您的包将在您的笔记本服务器的生命周期内可用,并且在当前项目中可用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-12-17
          • 2019-11-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-22
          相关资源
          最近更新 更多