【问题标题】:Error while loading an .arff file with scikit-learn使用 scikit-learn 加载 .arff 文件时出错
【发布时间】:2019-05-06 03:13:18
【问题描述】:

我想将属性关系文件格式 (.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

这个错误的原因是什么?为什么它只发生在一台机器上而不是另一台机器上?

【问题讨论】:

  • 这与sklearn无关。 arff.load 返回一个生成器,在转换为数组之前,您首先需要完全使用它。你在关注哪个教程?你为什么要dataset['data']

标签: python arff


【解决方案1】:

我假设您正在为 ARFF 使用旧的或不受支持的库。要了解您正在使用的 ARFF 包的详细信息,请尝试pip show arff。在我的第一次尝试中,它显示了一个谷歌代码网站的网址(现在已经不存在了)。尝试删除当前的 arff 包并在https://pypi.org/project/liac-arff/pip install liac-arff 安装一个。您的代码应该与 liac-arff 包一起使用。

【讨论】:

    猜你喜欢
    • 2015-01-31
    • 1970-01-01
    • 2019-04-28
    • 2015-03-01
    • 2018-07-21
    • 2018-01-27
    • 2016-02-28
    • 2019-11-26
    • 2015-02-19
    相关资源
    最近更新 更多