给出无效语法错误的基本 mlxtend 示例

basic mlxtend example giving invalid syntax error

我在 Ubuntu 16.04 上使用 Python 3.5.2。

我安装了 sklearn 使用..

sudo apt install python-sklearn

和 mlxtend 使用...

sudo pip3 install mlxtend

我正在尝试 运行 在 Internet 上找到的基本 Iris 示例,但是当我尝试从 mlxtend.plotting 导入 plot_decision_regions 时我收到错误消息:

from mlxtend.plotting import plot_decision_regions


Traceback (most recent call last):
  File "scripts/machine.learning.py", line 6, in <module>
    from mlxtend.plotting import plot_decision_regions
  File "/usr/local/lib/python3.5/dist-packages/mlxtend/plotting/__init__.py", line 15, in <module>
    from .heatmap import heatmap
  File "/usr/local/lib/python3.5/dist-packages/mlxtend/plotting/heatmap.py", line 74
    raise AssertionError(f'len(row_names) (got {len(row_names)})'
                                                                ^
SyntaxError: invalid syntax

我没有看到与您相同的错误,但请尝试从 plot_decision_regions 中删除 legend=range(105, 150),即

plot_decision_regions(x_combined, y_combined, clf=tree)

我正在使用最新的 sklearn,即

import sklearn
sklearn.__version__

'0.21.3'

也许删除那个版本

sudo apt-get remove python-sklearn

然后通过pip安装,即

pip3 install scikit-learn

我也有同样的错误,只是升级到python3.7 真正的错误是

python 3.5 does not support f prefix

使用 conda 升级

conda install -c anaconda python=3.7

然后更新所有依赖项

conda update --all