【问题标题】:Saving xgboost binary prediction to submission csv file将 xgboost 二进制预测保存到提交 csv 文件
【发布时间】:2017-12-22 20:05:36
【问题描述】:

我有“train.csv”和“test.csv”文件。前者包含“Id”、功能列表和包含值的“状态”列,“test.csv”文件包含除“状态”之外的相同列。

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

我能够在“train”文件上训练 XGboost,并且 roc_auc 分数非常好(高于 0.8)。我花了几个小时在互联网上搜索如何预测“测试”文件并将它们保存到“提交”文件中。令我惊讶的是,虽然这是一项相当常见的任务,但我找不到任何能够可靠地执行上述操作的脚本。

我的“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]))

您有工作代码要分享吗?谢谢!

【问题讨论】:

    标签: python csv binary prediction xgboost


    【解决方案1】:

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

    #Separate test (evaluation) dataset that doesn't include the output
    test_data = pd.read_csv('test.csv')
    #Choose the same columns you trained the model with
    X = test_data[predictors]  
    test_data['predictions'] = xg_cl.predict(X)
    test_data.to_csv('submission.csv')
    

    【讨论】:

      猜你喜欢
      • 2019-07-21
      • 2010-09-16
      • 2014-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-24
      相关资源
      最近更新 更多