【发布时间】:2015-01-31 14:03:00
【问题描述】:
我想用一个Attribute-Relation File Format 和 scikit-learn 来做一些 NLP 任务,这可能吗?如何将.arff 文件与scikit-learn 一起使用?
【问题讨论】:
标签: python machine-learning scikit-learn weka arff
我想用一个Attribute-Relation File Format 和 scikit-learn 来做一些 NLP 任务,这可能吗?如何将.arff 文件与scikit-learn 一起使用?
【问题讨论】:
标签: python machine-learning scikit-learn weka arff
我真的推荐liac-arff。不直接加载到numpy,但是转换很简单:
import arff, numpy as np
dataset = arff.load(open('mydataset.arff', 'rb'))
data = np.array(dataset['data'])
【讨论】:
from sklearn import svm s = svm.SVC() lables = [label1, label2] s.fit(training_data, labels) 我如何将arff 文件呈现给分类算法?
BadAttributeType: Bad @ATTRIBUTE type, at line 21. 我认为原因是我的 arff 文件中存在“关系”属性。有没有人有解决方案?谢谢。
我发现 scipy has a loader for arff files 将它们加载为 numpy 记录数组。我不能 100% 确定这些数组是否适合 scikit-learn 直接使用,但这应该可以帮助您入门。
【讨论】:
关注 renatopp 的回答: 假设您的数据是 iris 数据集,应该有 5 维,最后一个是类标签列。
s = svm.SVC()
data_input = data[:,0:4]
labels = data[:,4] # this is the class column
s.fit(data_input, labels)
我认为这是你想要的。
【讨论】:
scipy.arff的解决方案
代码:
from scipy.io import arff
import pandas as pd
data = arff.loadarff('file.arff')
df = pd.DataFrame(data[0])
df.head()
【讨论】:
如果您的“arff”文件是文本文件,请尝试以下代码:
import arff, numpy as np
dataset = arff.loads(open('mydataset.arff', 'rt'))
data = np.array(dataset['data'])
【讨论】: