我正在使用sklearn和pandas,我的预测是作为一个没有正确id的数组出现的,它已被设置为索引。
我的代码:
train = train.set_index('activity_id')
test = test.set_index('activity_id')
y_train = train['outcome']
x_train = train.drop('people_id', axis=1)
x_test = test
model = DecisionTreeClassifier(min_samples_leaf=100)
model.fit(x_train,y_train)
scores = cross_val_score(model, x_train,y_train, cv=10)
print('mean: {:.3f} (std: {:.3f})'.format(scores.mean(), scores.std()), end='\n\n')
print(model.score(x_train,y_train))
#make predictions
y_pred = model.predict(x_test)
有关如何使用正确的activity_id列表打印出来的任何想法?谢谢!
答案 0 :(得分:1)
根据您所写的内容,我相信您正在尝试在x_test生成的y_pred值旁边显示x_test的索引。
这可以通过将numpy数组输出从model.predict(x_test)
转换为DataFrame来完成。然后我们可以将新DataFrame的索引设置为与x_test
的索引相同。
这是一个例子,
df_pred = pd.DataFrame(y_pred, index=x_test.index, columns=['y_pred'])