前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >“梧桐杯”中国移动大数据应用创新大赛 - 智慧金融赛道Baseline

“梧桐杯”中国移动大数据应用创新大赛 - 智慧金融赛道Baseline

作者头像
老肥码码码
发布2021-03-18 12:46:29
7310
发布2021-03-18 12:46:29
举报
文章被收录于专栏:算法与数据之美

老肥今天和大家分享的是“梧桐杯”中国移动大数据应用创新大赛的智慧金融赛道的Baseline方案(抱歉鸽了很久),线上成绩为0.9438,处于一个相对靠前的排名位置。

赛题介绍

背景

在金融领域,活跃着一批“职业羊毛党”,他们通过套现、套利行为大肆牟利,影响普通用户本应享有的权益。他们制作各种自动、半自动的黑产工具,如自动注册机、刷单自动机、短信代接平台、分身软件、猫池等,并捆绑手机卡、银行卡或通过第三方平台交易完成套现,从而实现“薅羊毛”活动,自身获利的同时对商家、银行、平台、运营商的利益造成损失。如何从普通用户中有效鉴别出羊毛党,从而提前进行防范,在实际商业应用中有着重要的意义。

任务

防羊毛党评分模型旨在从普通用户中区分出羊毛党用户号码,本次挑战赛设置了更具挑战性的任务,相比其他竞赛,本次竞赛所提供的训练字段相对较少,总体为低资源的竞赛任务,具体包含:

初赛——利用用户通信、流量、app使用等行为数据识别真实羊毛党群体,即简单的二分类问题,是羊毛党,或者不是羊毛党。

数据

每一个号码样本包含两个月的数据,由加密过的手机号码和月份共同构成主键。包含两个基础特征以及多个月消费特征、APP访问特征、短信特征。训练数据是一月份以及二月份的特征,测试数据为三月份以及四月份的特征。

评价指标

评价指标为标准的F1 score, 我们可以在这个指标上做很多后处理来提升成绩。

Baseline方案

本方案未做细致特征工程,非常简单的Baseline,将特征分为数值类型的和类别特征。

代码语言:javascript
复制
data = pd.read_csv('data/data_a.csv')
# 将\N替换为空值
data.replace('\\N', np.NaN, inplace=True)
# 数值特征
f_features = ['gprs_fee', 'overrun_flux_fee', 'out_actvcall_dur', 'actvcall_fee',
       'out_activcall_fee', 'monfix_fee', 'gift_acct_amt', 'call_cnt',
       'up_flux', 'down_flux', 'p2psms_up_cnt',
       'p2psms_cmnct_fee', 'p2psms_pkg_fee']
data[f_features] = data[f_features].astype('float')
# 类别特征
cat_cols = ['if_family', 'if_group', 'sms_inpkg_ind']
data.sort_values('month', inplace=True)
data.drop_duplicates('phone', inplace=True)
data.reset_index(drop=True, inplace=True)
data[cat_cols] = data[cat_cols].astype('category')

并且只选择了一月份的数据来做训练数据,镜像地选用测试集的三月份数据作为测试集数据,使用分层五折进行lgb模型的训练,模型的参数使用祖传参数,评价标准为binary_error生成预测文件。

代码语言:javascript
复制
def find_best_t(y_pred, y_true):
    best_score = f1_score(y_true, np.where(y_pred >= 0.5, 1, 0))
    t = 0.5
    for i in tqdm(range(300, 700)):
        current_score = f1_score(y_true, np.where(y_pred >= i / 1000, 1, 0))
        if current_score > best_score:
            best_score = current_score
            t = i / 1000
            print(f'best score: {best_score}, best t: {t}')
    return t

t = 0.5
t = find_best_t(oof_lgb, y)

对于该二分类问题,我们还可以通过调整阈值的后处理方法来提分,选择本地验证集最高f1_score的阈值, 在预测时采用相同的阈值(原来阈值为0.5),大于该阈值取1,小于该阈值则取0。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与数据之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 赛题介绍
    • 背景
      • 任务
        • 数据
          • 评价指标
          • Baseline方案
          相关产品与服务
          短信
          腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档