Quantcast
Channel: 旁门左道 »数据仓库
Viewing all articles
Browse latest Browse all 2

第一届全国大学生数据挖掘邀请赛-数据集分析篇

$
0
0
今天下午有点时间,研究了下#第一届大学生全国数据挖掘邀请赛#的数据集,顺便写个酱油贴。 数据集版权归 上海花千树信息科技有限公司 世纪佳缘交友网站 http://www.love21cn.com 所有 此处省略相关废话51句,详细介绍走这边,http://www.statmodelingcompetition.com。 咱们先了解下这次比较的评分标准: Normalized Discounted Cumulative Gain(NDCG) 有关NDCG评分,具体看这里http://www.statmodelingcompetition.com/explain.html: NDCG@10简单来说: click得1分/msg得2分 取10个你的推荐人(有顺序的哦),对照实际的用户的反馈(rec/click/msg),结合上面的公式,算出你NDCG@10分数。 最理想的情况就是你推荐的每个人,他都发站内消息(注,spammer不算),即NDCG理想得分:1.0,当然这是不可能的,目前排行榜上最高也就.24左右 介绍下下载下来的数据: data目录: profile_f.txt,女性会员的资料,203843条数据 profile_m.txt,男性会员的资料,344552条数据 test.txt, train.txt,原始数据,事实表,格式[USER_ID_A USER_ID_B ROUND ACTION],用户A在第几轮推荐的时候给用户B的反应(不理、点击查看资料、发站内消息) 字段列表.xlsx,这个不要解释,省去废话5字 python目录:(具体看里面的使用方法,这里简单提一下) evaluate.py,本地计算NDCG分数的脚本 labels_train.txt,由data目录的train.txt数据转换而来,将同一用户的对其他后续人的推荐反馈做的一个聚合,注意,这里已经将推荐轮数给抹掉,分析的时候,推荐轮数可能有点影响。 yourranks.txt,这文件里默认给了一个随机的数据,主要是指导你上传提交的数据格式,每一行,每一列和labels_train.txt的文件里的数据是一一对应的,表示的是labels_train.txt里面的候选人(推荐给用户A的)最合理的推荐顺序(这个其实就是我们需要做的,那个最有可能被用户A看上,当然第一时间推给他,如此。。,注,可能你会奇怪为什么每行的数据不一样,没有办法,因为每一个用户的候选推荐人数列表就是不一样的,有可能是推荐轮数的问题,有可能是给我们的数据的稀疏性造成的,这些都不是问题,只有我们保证前10个,最多20个是非常精确的就行) 使用方法.txt,pass。。。 其实数据挖掘,对数据的理解很重要,并且还需要理解数据之上的业务,然后再建模分析,不断调整优化。 先八卦一下,看哪个人接受的推荐次数最多。 简单对train.txt里面的数据进行处理,得到按推荐次数排序的人员列表: python脚本: #!/usr/bin/env python from operator import itemgetter import sys   word2count={} filehander=open('train.txt') for line in filehander: line=line.strip() word,wordb,count,s = line.split(' [...]

Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images