最近参见了第二届易观算法大赛——性别年龄预测比赛,基于不懈的努力还是名落孙山,成绩虽然算不得满意,不过比赛过程中收获还是挺多的。目前比赛还没结束,有兴趣的可以参加一下。
本次主要是对比赛中的训练数据进行一些分析和盘点,毕竟搞到实际数据还是挺难的,既然有了就分析一波。
首先,基于比赛数据中的手机型号信息写个爬虫爬取到了对应手机型号的目前市面价格。
爬虫代码如下
import requests
from bs4 import BeautifulSoup
import re
import json
sdk=open("deviceid_brand.tsv","r",encoding='utf-8')
sdk_w=open("deviceid_brand_w.tsv","w",encoding='utf-8')
oneline=sdk.readline()
dirtype={}
count=0
while oneline:
count=count+1
stm=oneline.replace('\n','')
line=oneline.replace('\n','').split('\t')
price='-1'
try:
if dirtype.get(line[2]) ==None:
headers = {
'Cookie': 'z_pro_city=s_provice%3Dliaoning%26s_city%3Ddalian; userProvinceId=6; userCityId=64; userCountyId=0; userLocationId=17245; realLocationId=17245; userFidLocationId=17245; ip_ck=5MKG4PP3j7QuMzU3NzkwLjE1MzkxNDg2NjU%3D; lv=1539148667; vn=1; gr_user_id=47c200a8-f21c-4aa7-af70-264c35ff344d; gr_session_id_9b437fe8881a7e19=7315395d-337b-4df0-87ca-241c06880e15; gr_session_id_9b437fe8881a7e19_7315395d-337b-4df0-87ca-241c06880e15=true; listSubcateId=57; Hm_lvt_ae5edc2bc4fc71370807f6187f0a2dd0=1539148719; visited_subcateId=57; visited_subcateProId=57-0; visited_serachKw=samsung%09GT-I8552; Adshow=5; questionnaire_pv=1539129604; Hm_lpvt_ae5edc2bc4fc71370807f6187f0a2dd0=1539148808; z_day=izol103323=2&rdetail=4'}
r = requests.get('http://detail.zol.com.cn/index.php?c=SearchList&keyword='+line[1]+'%09'+line[2], headers=headers, timeout=10)
# print(r.status_code)
# print(r.headers)
soup = BeautifulSoup(r.text)
if soup.find(name="b", attrs={"class": "price-type"})!=None:
price=soup.find(name="b", attrs={"class": "price-type"}).text
price=str(price).replace(' ','').replace('\t','').replace('\n','')
mc=re.search('[0-9]*',price).group()
if mc !='':
if float(mc)>200:
print(count,stm+'\t'+mc)
dirtype[line[2]]=mc
sdk_w.write(stm+'\t'+mc+'\n')
else:
sdk_w.write(stm + '\t' + dirtype.get(line[2]) + '\n')
except Exception as e:
print('error',e)
oneline = sdk.readline()
sdk.close()
sdk_w.close()
爬取后的手机型号和手机价格用于之后的统计
爬取好的数据可以点击下载
统计1:男性与女性购买手机的平均价格
可以看出女性购买的手机价格更高一些,果然拍照手机在女性消费者中更有市场啊
统计2:不同年龄段中手机平均价格
各年龄段大致的价格差别不大,不过还是可以看出30岁左右的女性愿意购买价格贵一些的手机(美颜需求?),15-20的男性青年学生愿意购买较贵的手机(游戏需要?),老年人手机的价格并非想象中那么低,看来老年人对智能手机的需求还是很旺盛的。
统计3:不同年龄段中最贵手机价格统计
价格差不多,不过还是可以看出35岁以上的男性更有实力去购买更贵的手机(事业有成,财力丰厚),平均价格在6700元以上(我是买不起的-_-!)
统计4:不同年龄段中最低价手机价格统计
最低手机价格都在300以下(功能机的主场?),15岁左右手机价格最低(莫欺少年穷)
价格看完了,我们再看看应用安装数量的情况
统计5:不同年龄段中应用数量平均值统计
男性与女性的应用数量基本相同(男孩的游戏,女孩的购物),30岁前男性的手机应用数量多,30岁后女性的手机应用数量多。
最后我们看看谁睡的最晚,起的最早
统计6:一天中应用使用的最早/最晚时间点
20岁以下及左右的年轻人1点左右就睡了(第二天还要上学上课)25岁3点左右(风华正茂嗨起来),30岁(男性注意身体早点睡了,女性睡的更晚),35岁(男性中年危机,彻夜难眠-_-!),50岁左右,女性起的更早,55岁男性起的更早。
以上纯属胡扯,不过数据还挺有意思的,有时匪夷所思,有时又醍醐灌顶。
最后,再次感谢易观提供的用户行为数据。