将xgboost二进制预测保存到提交csv文件

时间:2017-12-22 20:05:37

标签: python csv binary prediction xgboost

我有' train.csv'和' test.csv'文件。前者包含' Id',功能列表和状态'包含值的列,' test.csv'文件包含相同的列,但'状态'一。

我的任务是在#train; train.csv'上训练XGboost模型。提交并预测“状态”的二进制结果。对于' test.csv'文件,然后保存' Id'和'状态'到单独的csv文件提交。

我能够在火车上训练XGboost'文件,roc_auc得分相当不错(0.8以上)。我花了几个小时在互联网上搜索如何对“测试”进行预测。将文件保存到“提交内容”中。文件。令我惊讶的是,虽然这是一项非常常见的任务,但我找不到任何能够可靠地执行上述操作的脚本。

我的工作代码为#train; train.csv'文件以防万一:

predict = pd.read_csv("train.csv")
predictors =['par48','par52','par75','par82','par84','par85','par86','par87','par89','par108','par109','par132','par156','par165','par167','par175','par190','par197']
X, y = predict[predictors], predict['Status']
X_train, X_test, y_train, y_test= train_test_split(X, y, test_size=0.2, random_state=123)
xg_cl=xgb.XGBClassifier(objective='binary:logistic',n_estimators=10,seed=123)
xg_cl.fit(X_train, y_train)
preds=xg_cl.predict(X_test)
accuracy = float(np.sum(preds==y_test))/y_test.shape[0]
print("accuracy: %f" % (accuracy))
print(xg_cl.feature_importances_)
print(roc_auc_score(y_test, xg_cl.predict_proba(X_test)[:,1]))

你有共享的工作代码吗?谢谢!

1 个答案:

答案 0 :(得分:1)

好吧,$afterStore代码以model.predict格式返回预测结果,因此,首先您需要读取单独的array文件(如果存在),然后您可以使用该模型您已根据训练数据构建预测输出。最后,您可以将test预测添加到您作为新列读取的pandas array,然后将其写入DataFrame文件:

csv