0

我是机器学习的新手,我正在查看一些 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 笔记本中的 sklearn 时存在一些问题,但通常答案与 Anaconda Jupyter 笔记本有关,而不是与 Azure 笔记本有关。

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

4

4 回答 4

0

这对我有用:

pip install --upgrade pandas
于 2021-03-16T16:12:55.420 回答
0

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

pip install -U scikit-learn 

这对我有用。

于 2020-01-10T13:44:34.363 回答
0

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

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

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

于 2020-01-11T16:01:07.940 回答
-1

注意事项:

  • %autoreload 2如果您已经导入了 sklearn(即使使用魔法),则需要重新启动内核。
  • 如果您将内核从默认值更改(例如从Python 3.6 - AzureML 更改3.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 中从 0.22 升级到 0.24.2 - Azure ML仍然会产生一些错误消息,但如果您不使用这些包(甚至可能),您可以放心地忽略它们

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

于 2021-05-21T13:18:35.723 回答