首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

阿里的大数据赛题

  •  
  •   buptlee · 2014-03-19 20:52:50 +08:00 · 5027 次点击
    这是一个创建于 2043 天前的主题,其中的信息可能已经有所发展或是发生改变。
    阿里最近搞了个大数据竞赛,赛题在这里:
    http://102.alibaba.com/competition/addDiscovery/gameTopic.htm
    阿里提供了4个月的用户数据,格式是这样的一个EXCEL表:
    11158000 5043 0 5月9日
    11158000 5043 0 7月22日
    11158000 5043 0 7月14日
    11158000 5043 0 5月11日
    11158000 5043 1 5月5日
    第一列是用户ID,第二列是商品品牌ID,第三列是用户行为(0,1,2,3分别代表点击,购买,收藏,购物车)。需要我们预测下个月的用户购买行为,评价标准是准确率和召回率以及两者的调和平均值。
    我试了几个方案,发现直接将收藏和购物车作为用户购买行为的依据却是最好的方法,简单粗暴,难道这就是所谓的奥卡姆剃刀?不过,也有可能是我另外的方案设计得不好。
    熟悉推荐算法的同学给点建议吧,最好要简单点,实现起来比较方便,代码量在几百行级别最好,毕竟只是个竞赛呢。谢过啦。
    23 回复  |  直到 1970-01-01 08:00:00 +08:00
        1
    casparchen   2014-03-19 21:16:10 +08:00
    我觉得还是综合几种建模方式的结果比较靠谱。比如
    建模1:针对每个品牌,该品牌的不同用户点击/收藏/购买肯定是有规律的
    建模2:针对每个用户,该用户对品牌的购买情况是有规律的。
    比如以上两种建模方式,1的效果我猜是大于2的,因此可以取{建模1结果:建模2结果}={2:1}
        2
    webjin   2014-03-19 21:55:36 +08:00
    http://gtms02.alicdn.com/tps/i2/T11omZFu0XXXaTF0MH-435-146.png 知道这是什么编辑器吗?那中间的->线是什么弄出来的
        3
    yelite   2014-03-19 22:12:21 +08:00   ♥ 1
    @webjin 那个是制表符
    编辑器目测是notepad++
        4
    ihacku   2014-03-19 22:12:42 +08:00
    @webjin 这不是notepad++么
        5
    ljcarsenal   2014-03-19 22:14:33 +08:00
    @webjin notepad++吧
        6
    vbs   2014-03-19 22:31:12 +08:00
    这比赛挺好的,可惜只许在校生参加
        7
    sobigfish   2014-03-19 22:42:56 +08:00
    只有报名了才下载的到数据么?
        8
    ericls   2014-03-19 22:47:17 +08:00
    数学建模上吧
        9
    webjin   2014-03-19 23:58:13 +08:00
    @yelite 哦 我也感觉是notepad++ 但是那制表符是怎么弄出来的
        10
    yangff   2014-03-20 00:17:33 +08:00
    看起来像马尔科夫链……假如上个月对品牌A做了操作B导致下个月对品牌C操作D的概率啥的。。
        11
    66beta   2014-03-20 10:32:11 +08:00
    @webjin 觉得是gedit
        12
    66beta   2014-03-20 10:33:05 +08:00
        13
    delo   2014-03-20 10:36:41 +08:00
    @webjin npp里有个显示所有字符的功能
        14
    Lucius   2014-03-20 10:56:53 +08:00
    @66beta notepad++无疑 而且是默认配色
        15
    ericls   2014-03-20 20:52:33 +08:00 via Android
    这就是一个不折不扣的数学建模题啊
        16
    armysheng   2014-03-20 22:36:40 +08:00
    @buptlee 直接将收藏和购物车作为用户购买行为的依据却是最好么?
    如果用前三个月做测试,后1个月做校验,按照你说的直接选有收藏和购物车我算的结果是
    predict num is 2858
    hit num is 185
    total brand is 18537
    precision is 0.0647305808258
    call rate is 0.00998003992016
    F1 is 0.0172937602244
    F1才1.7%啊?
        17
    buptlee   2014-03-21 08:53:55 +08:00
    @armysheng 要不show me your code?
        18
    armysheng   2014-03-21 15:02:32 +08:00
    @buptlee 额,上面说的好像搞错了。上午改了一下,但是如果纯按是否有收藏和购物车来判的话,F1貌似还是不高啊
    predict num is 491
    hit num is 2
    total brand is 1377
    precision is 0.0040733197556
    call rate is 0.00145243282498
    F1 is 0.00214132762313
    判断条件的代码是这样的:
    if int(op3[2])|int(op3[3]) |int(op2[2])|int(op2[3])|int(op1[2])|int(op1[3]):
    predict_temp.write(uid +"," + bid + "\n")
        19
    armysheng   2014-03-22 10:01:25 +08:00
    @buptlee 方便私底下交流么,没人可以讨论真是尴尬
        20
    lj   2014-03-22 13:06:39 +08:00
    @armysheng 官方论坛里还是蛮多人在讨论的,看了一圈清晰了很多。P.S. 我也觉得2、3效果有限而且毕竟数据量太小,0和1的correlation比2、3的大多了。
        21
    heliumhgy   2014-03-24 09:52:18 +08:00 via Android
    协同过滤算法
        22
    heliumhgy   2014-03-24 10:02:11 +08:00 via Android
    据说效果不好
        23
    buptlee   2014-03-25 09:46:24 +08:00
    @heliumhgy 恩,我们就用简单的打分办法,效果却还可以,F1值有接近6%吧,打算调调参数,等到season2再上算法了,。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4175 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 30ms · UTC 08:40 · PVG 16:40 · LAX 01:40 · JFK 04:40
    ♥ Do have faith in what you're doing.