Xgboost实践+天池比赛O2O优惠券auc接近天池第一名0.81(auc0.80,支持CPU、GPU源代码下载链接)

本文记录了使用Xgboost在天池O2O优惠券比赛中优化模型的过程,从AUC的0.53逐步提升到0.80。通过特征工程和模型参数调整,特别是在引入在线数据和利用GPU加速后,达到了较高的预测效果。详细过程、源码和数据可在提供的GitHub仓库中找到。
摘要由CSDN通过智能技术生成

0. 前言

  1. 本次实践的是[天池比赛O2O优惠券赛题]https://tianchi.aliyun.com/competition/entrance/231593/information ,由于是初接触机器学习,所以参考了天池技术圈等很多博客,关于该赛题的思路,网上已经有很多篇写的很好的文章了(见下面参考博客),我在这里主要是记录下我自己将该赛题的分数从0.53一直提升到0.80的过程,留作学习记录。

  2. 关于该赛题的思路可以参考如下博客:
    [1]. [Xgboost实践+第一名天池o2o优惠券的使用预测思路完整版]
    https://blog.csdn.net/weixin_42001089/article/details/85013073

    [2]. [[天池竞赛系列]O2O优惠券使用预测复赛第三名思路]
    https://tianchi.aliyun.com/notebook-ai/detail?postId=8462

  3. 本篇文章接下来的所有源码及数据如下:
    https://github.com/myourdream/tianchi_O2O_predict

  4. 使用GPU的环境及遇到的问题解决办法请参考我的另外两篇博客:
    [1]. https://blog.csdn.net/myourdream2/article/details/86586281
    [2]. https://blog.csdn.net/myourdream2/article/details/86603300

1. auc0.53

在天池新人赛报名之后,就先到技术圈去学习了下,看到一个100行代码入门天池O2O优惠券使用新人赛【精简教程版】,就拿来练了下手,运行很顺利,代码也相对比较简单,部分代码如下所示:

  1. 【使用的库】

    import os, sys, pickle
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    from datetime import date
    from sklearn.linear_model import SGDClassifier, LogisticRegression
    
    dfoff = pd.read_csv('datalab/1990/data/ccf_offline_stage1_train.csv')
    dftest = pd.read_csv('datalab/1990/data/ccf_offline_stage1_test_revised.csv')
    dfon = pd.read_csv('datalab/1990/data/ccf_online_stage1_train.csv')
    print('data read end.')
    
  2. 【使用的模型】

    # feature
    original_feature = ['discount_rate','discount_type','discount_man', 'discount_jian','distance', 'weekday', 'weekday_type'] + weekdaycols
    print("----train-----")
    model = SGDClassifier(#lambda:
        loss='log',
        penalty='elasticnet',
        fit_intercept=True,
        max_iter=100,
        shuffle=True,
        alpha = 0.01,
        l1_ratio = 0.01,
        n_jobs=1,
        class_weight=None
    )
    model.fit(train[original_feature], train['label'])
    
  3. 【使用的feature】

    # feature
    original_feature = ['discount_rate','discount_type'
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值