【问题标题】:.arff files with scikit-learn?.arff 文件与 scikit-learn?
【发布时间】:2015-01-31 14:03:00
【问题描述】:

我想用一个Attribute-Relation File Format 和 scikit-learn 来做一些 NLP 任务,这可能吗?如何将.arff 文件与scikit-learn 一起使用?

【问题讨论】:

    标签: python machine-learning scikit-learn weka arff


    【解决方案1】:

    我真的推荐liac-arff。不直接加载到numpy,但是转换很简单:

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

    【讨论】:

    • 感谢您的反馈。知道如何使用此对话进行分类吗?
    • 我都知道,例如使用 SVM,分类的基本思想是:from sklearn import svm s = svm.SVC() lables = [label1, label2] s.fit(training_data, labels) 我如何将arff 文件呈现给分类算法?
    • 你能从 .arff 文件中解析 TF-IDF 分数并在 sklearn 中使用它吗?
    • 使用 liac-arff 加载 arff 文件时出现以下异常:BadAttributeType: Bad @ATTRIBUTE type, at line 21. 我认为原因是我的 arff 文件中存在“关系”属性。有没有人有解决方案?谢谢。
    【解决方案2】:

    我发现 scipy has a loader for arff files 将它们加载为 numpy 记录数组。我不能 100% 确定这些数组是否适合 scikit-learn 直接使用,但这应该可以帮助您入门。

    【讨论】:

    • 你认为我需要解析那些 numpy 数组吗?...为了在 scikit-learn 中提供一些分类算法,我需要做什么样的预处理?
    • 那些寻找代码使用 scipy import scipy.io.arff as arff data = arff.loadarff(open(file_path,'rt'))
    【解决方案3】:

    关注 renatopp 的回答: 假设您的数据是 iris 数据集,应该有 5 维,最后一个是类标签列。

    s = svm.SVC()
    data_input = data[:,0:4]
    labels = data[:,4] # this is the class column
    s.fit(data_input, labels)
    

    我认为这是你想要的。

    【讨论】:

      【解决方案4】:

      scipy.arff的解决方案

      代码:

      
      from scipy.io import arff
      import pandas as pd
      
      data = arff.loadarff('file.arff')
      df = pd.DataFrame(data[0])
      df.head()
      

      【讨论】:

        【解决方案5】:

        如果您的“arff”文件是文本文件,请尝试以下代码:

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

        【讨论】:

          猜你喜欢
          • 2019-05-06
          • 1970-01-01
          • 2018-11-01
          • 2016-07-15
          • 2017-04-10
          • 2013-07-01
          • 2021-03-26
          • 2019-09-04
          相关资源
          最近更新 更多