使用 scikit-learn 加载 .arff 文件时出错

Error while loading an .arff file with scikit-learn

我想将属性关系文件格式 (.arff) 与 scikit-learn 一起用于分类问题。该代码在 Windows 10 机器上运行良好,但是当我在另一台机器上使用 Ubuntu(18.04.1) 尝试相同的代码时,它会抛出一个令人困惑的错误。这是加载 arff 文件的代码:

import arff, numpy as np
dataset = arff.load(open('mydataset.arff'))
mydata = np.array(dataset['data'])

我得到的错误是:

Traceback (most recent call last):
  File "/home/user/Desktop/ml_classification.py", line 14, in <module>
    mydata = np.array(dataset['data'])
TypeError: 'generator' object is not subscriptable

此错误的可能原因是什么?为什么它只出现在一台机器上而不出现在另一台机器上?

我假设您使用的是旧的或不受支持的 ARFF 库。为了找出您正在使用的 ARFF 包的详细信息,请尝试 pip show arff。在我的第一次尝试中,它显示了一个 google 代码站点的 url(现在已经不存在了)。尝试删除当前的 arff 包并安装位于 https://pypi.org/project/liac-arff/pip install liac-arff 的那个。您的代码应该适用于 liac-arff 包。