2017-09-05 110 views
0

我想执行多标签分类。 A有一个我加载的arff格式的数据集。但是,我现在不知道如何将导入数据转换为X和y向量,以便应用sklearn/train_test_split。从加载的arff文件创建列车和测试变量

我怎样才能得到X和Y?

data, meta = scipy.io.arff.loadarff('../yeast-train.arff') 
df = pd.DataFrame(data) 

#Get X, y 
X, y = ??? <--- 

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) 
+0

从哪里下载了'yeast-train.arff'? 'data'里面必须有一列是你的'y'。而其他所有列(不包括目标列'y')成为您的'X'。 –

+0

我从[这里下载](http://sourceforge.net/projects/mulan/files/datasets/yeast.rar) – user1649606

回答

0

好的。它是一个多标记数据,其中的要素位于列Att1, Att2, Att3.... Att20中,目标位于列Class1, Class2, .... Class14中。

所以你需要使用这些列来获取X和Y.像这样:

# Fill the .... with all other column names 
feature_cols = ['Att1', 'Att2', 'Att3', 'Att4', 'Att5' .... 'Att20'] 
target_cols = ['Class1', 'Class2', 'Class3', 'Class4', .... 'Class14'] 

X, y = df[feature_cols], df[target_cols]