"阿里巴巴"杯北邮数据挖掘竞赛
一、赛题介绍
在天猫,每天都会有数千万的用户通过品牌发现自己喜欢的商品,品牌是联接消费者与商品最重要的纽带。
本届赛题的任务就是根据用户近200天在天猫的行为日志,建立用户的品牌偏好,并对用户的性别和年龄进行分类。
根据性别和年龄将用户分为了12类,建议参赛者考虑类别不平衡问题(偏斜不严重)。
比赛共约700MB的数据量,按6:2:2的比例分配与训练集、测试集1、测试集2。
竞赛数据类型:
log_train文件:
info_train文件:
用上述公式计算得出的加权F1作为最终排名指标。
四、数据分析
1.数据总量
2.类别分布
分析:根据上图,我们可以预测1-6类为女性用户,7-12类为男性用户!
实现代码:
#!/usr/bin/python278
# _*_ coding: utf-8 _*_
import matplotlib
import matplotlib.pyplot as plt
def goforit():
labdic={}
file=open("info_train.txt",'r')
y=[]
zhfont = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\ukai.ttc')
for line in file.readlines():
lab=int(line)
if lab not in labdic:
labdic[lab]=0
labdic[lab]+=1
x=range(1,len(labdic)+1)
for i in x:
y+=[labdic[i]]
fig=plt.figure()
ax=fig.add_subplot(111)
ax.scatter(x,y)
ax.axis( [0,12, 0 ,30000]) #设置坐标轴范围
plt.plot(x,y,'-r')
plt.bar(x,y,alpha = .5, color = 'g')
plt.xlabel(u'用户类别', fontproperties=zhfont,fontsize=26)
plt.ylabel(u'用户数量', fontproperties=zhfont,fontsize=26)
plt.show()
分析:根据上图,我们可以看出第185天是消费的最高峰,可以推测为“双十一狂欢购物节”,同时,第1-10是消费的最低峰,可以推测为“春节”!
实现代码:
#!/usr/bin/python278
# _*_ coding: utf-8 _*_
import numpy
import matplotlib
import matplotlib.pyplot as plt
def timePurchase():
file=open("time_stamp.txt",'r')
indexDict={}
y=[]
zhfont = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\ukai.ttc')
for line in file.readlines():
index=int(line)
if index not in indexDict:
indexDict[index]=0
indexDict[index]+=1
x=range(1,len(indexDict)+1)
for i in range(1,len(indexDict)+1):
y+=[indexDict[i]]
fig=plt.figure()
ax=fig.add_subplot(111)
ax.scatter(x,y)
ax.axis( [1,185, 5 ,50000]) #设置坐标轴范围
plt.plot(x,y,'-r')
plt.bar(x,y,alpha = .5, color = 'g')
plt.xlabel(u'消费日期', fontproperties=zhfont,fontsize=26)
plt.ylabel(u'用户数量', fontproperties=zhfont,fontsize=26)
plt.show()
未完待续。。。