天池-优惠卷预测大赛-模型预测

预测

前一文中,我们得到了训练的XGBoost模型,现在利用这个模型来预测测试集

  • 1、引包
  • import pandas  as pd
    import numpy as np
    import xgboost
    import matplotlib.pyplot as plt
    import time
    import os
    import sys
    import json
    import operator

  • 2、文件路径
  • # raw field name
    user_label = 'User_id'
    coupon_label = 'Coupon_id'
    date_received_label = 'Date_received'
    probability_consumed_label = 'Probability'

  • 3、预测
  • # 加载模型
    model_file_path='D:/workspace/gitWorkSpace/O2O-Coupon-Usage-Forecast-master/O2O-Coupon-Usage-Forecast-master/code/wepon/data1/model/trainModel_2018081901PM40.model'
    model = xgboost.Booster(model_file=model_file_path)
    
    # 加载测试集
    fileDir='D:/workspace/gitWorkSpace/O2O-Coupon-Usage-Forecast-master/O2O-Coupon-Usage-Forecast-master/code/wepon/data1/'
    predict_path=fileDir+'data/dataset3.csv'
    predict_features = pd.read_csv(predict_path).astype(float)
    predict_matrix = xgboost.DMatrix(predict_features.values, feature_names=predict_features.columns)
    
    
    # 预测模型
    labels = model.predict(predict_matrix)
    frame = pd.Series(labels, index=predict_features.index)
    frame.name = probability_consumed_label
    
    plt.figure()
    frame.hist(figsize=(10, 8))
    plt.title('results histogram')
    plt.xlabel('predict probability')
    plt.gcf().savefig('{0}_{1}{2}'.format(fileDir+"/predit",'1111123', '.jpg'))
    plt.close()
    # 将预测标签和数据集合在一起
    data_split_path= 'D:/workspace/gitWorkSpace/O2O-Coupon-Usage-Forecast-master/O2O-Coupon-Usage-Forecast-master/code/charles/data_split'
    
    submission = pd.read_csv(data_split_path+"/predict_data/dataset.csv")
    submission = submission[[user_label, coupon_label, date_received_label]].join(frame)  # 把核销概率拼接在一起
    submission.to_csv('{0}_{1}{2}'.format(fileDir+"/predit",'123', '.txt'), index=False)

    预测测试集的使用优惠卷的概率,并按照官网的格式输出到文件中。

    提交结果

    这个文件结果提交到天池官网,得到的结果不是很理想
    图片

    结果与第一名实际得到的结果又很大差别,第一名在初赛中的成绩是0.7多,我按照他们的代码得到的结果,结果差别有点大,其实在训练模型的时候,测试集上交叉验证中,得到的准确率并不低,都是0.8以上,在测试集上不知怎么就0.4,想不明白,回头再看下代码。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值