我想进行多标签分类。我有一个arff格式的数据集,我加载。但是我现在不知道如何将导入数据转换为X和y向量以应用sklearn / train_test_split。
我怎样才能得到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 :(得分: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]