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

阿里的大数据赛题

  •  
  •   buptlee ·
    Xiaoxin2009 · 2014-03-19 20:52:50 +08:00 · 6101 次点击
    这是一个创建于 3907 天前的主题,其中的信息可能已经有所发展或是发生改变。
    阿里最近搞了个大数据竞赛,赛题在这里:
    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
    casparchen
        1
    casparchen  
       2014-03-19 21:16:10 +08:00
    我觉得还是综合几种建模方式的结果比较靠谱。比如
    建模1:针对每个品牌,该品牌的不同用户点击/收藏/购买肯定是有规律的
    建模2:针对每个用户,该用户对品牌的购买情况是有规律的。
    比如以上两种建模方式,1的效果我猜是大于2的,因此可以取{建模1结果:建模2结果}={2:1}
    webjin
        2
    webjin  
       2014-03-19 21:55:36 +08:00
    http://gtms02.alicdn.com/tps/i2/T11omZFu0XXXaTF0MH-435-146.png 知道这是什么编辑器吗?那中间的->线是什么弄出来的
    yelite
        3
    yelite  
       2014-03-19 22:12:21 +08:00   ❤️ 1
    @webjin 那个是制表符
    编辑器目测是notepad++
    ihacku
        4
    ihacku  
       2014-03-19 22:12:42 +08:00
    @webjin 这不是notepad++么
    ljcarsenal
        5
    ljcarsenal  
       2014-03-19 22:14:33 +08:00
    @webjin notepad++吧
    vbs
        6
    vbs  
       2014-03-19 22:31:12 +08:00
    这比赛挺好的,可惜只许在校生参加
    sobigfish
        7
    sobigfish  
       2014-03-19 22:42:56 +08:00
    只有报名了才下载的到数据么?
    ericls
        8
    ericls  
       2014-03-19 22:47:17 +08:00
    数学建模上吧
    webjin
        9
    webjin  
       2014-03-19 23:58:13 +08:00
    @yelite 哦 我也感觉是notepad++ 但是那制表符是怎么弄出来的
    yangff
        10
    yangff  
       2014-03-20 00:17:33 +08:00
    看起来像马尔科夫链……假如上个月对品牌A做了操作B导致下个月对品牌C操作D的概率啥的。。
    66beta
        11
    66beta  
       2014-03-20 10:32:11 +08:00
    @webjin 觉得是gedit
    66beta
        12
    66beta  
       2014-03-20 10:33:05 +08:00
    delo
        13
    delo  
       2014-03-20 10:36:41 +08:00
    @webjin npp里有个显示所有字符的功能
    Lucius
        14
    Lucius  
       2014-03-20 10:56:53 +08:00
    @66beta notepad++无疑 而且是默认配色
    ericls
        15
    ericls  
       2014-03-20 20:52:33 +08:00 via Android
    这就是一个不折不扣的数学建模题啊
    armysheng
        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%啊?
    buptlee
        17
    buptlee  
    OP
       2014-03-21 08:53:55 +08:00
    @armysheng 要不show me your code?
    armysheng
        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")
    armysheng
        19
    armysheng  
       2014-03-22 10:01:25 +08:00
    @buptlee 方便私底下交流么,没人可以讨论真是尴尬
    lj
        20
    lj  
       2014-03-22 13:06:39 +08:00
    @armysheng 官方论坛里还是蛮多人在讨论的,看了一圈清晰了很多。P.S. 我也觉得2、3效果有限而且毕竟数据量太小,0和1的correlation比2、3的大多了。
    heliumhgy
        21
    heliumhgy  
       2014-03-24 09:52:18 +08:00 via Android
    协同过滤算法
    heliumhgy
        22
    heliumhgy  
       2014-03-24 10:02:11 +08:00 via Android
    据说效果不好
    buptlee
        23
    buptlee  
    OP
       2014-03-25 09:46:24 +08:00
    @heliumhgy 恩,我们就用简单的打分办法,效果却还可以,F1值有接近6%吧,打算调调参数,等到season2再上算法了,。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1174 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:42 · PVG 02:42 · LAX 10:42 · JFK 13:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.