【Task02】组队学习新闻推荐—数据分析
本次数据分析的过程
1. 数据预处理:
分别把训练集,测试集数据按时间戳排序并统计用户点击文章的次数。用到groupy()rank()transport()函数
rank()与sorted()区别
rank():返回原序列元素对应位置的序列
sorted():只是进行排序
2. 数据浏览:
训练集测试集表格:
浏览数据文件的每个字段的含义和head() 大致对数据有个整体印象
用到的函数:
merge(df,how(连接方式),on(在哪个字段进行链接))(连接两个表),info(),describe(),nunique()
画直方图【barplot()】看测试集和训练集基本属性情况,可以看到每个属性前几个用户的取值情况
新闻文章信息数据表:
tail()与head()区别:一后一前
append():在下方加入表格
3.数据分析
- 用户活跃度分析(点击文章次数,点击文章环境)
- 新闻热度分析(通过点击次数,共现频次)
- 新闻文章信息分析(新闻类型,新闻字数)
- 用户点击偏好分析(新闻类型、长度、点击时间)
使用的技术:
- agg():聚合函数,其参数介绍可见下链接 https://www.jianshu.com/p/f37ac2a7b6dc
- reset_index():重置索引https://blog.youkuaiyun.com/qq_36523839/article/details/80640139
- sorted():排序函数
- transform():参数为函数,用于某一列的数据执行该函数操作
- 归一化操作:sklearn.preprocesssing.MinMaxScaler.fit_transform()
- fullna():对缺失值进行处理
- apply():批处理函数
- 文章向量相似度向量计算:
np.dot(emb1,emb2)/(np.linalg.norm(emb1)*(np.linalg.norm(emb2)))
dot():点乘函数 norm:范数函数
总结
通过数据分析的过程, 我们目前可以得到以下几点重要的信息, 这个对于我们进行后面的特征制作和分析非常有帮助:
1.训练集和测试集的用户id没有重复,也就是测试集里面的用户模型是没有见过的
2.训练集中用户最少的点击文章数是2, 而测试集里面用户最少的点击文章数是1
3.用户对于文章存在重复点击的情况, 但这个都存在于训练集里面
4.同一用户的点击环境存在不唯一的情况,后面做这部分特征的时候可以采用统计特征
5.用户点击文章的次数有很大的区分度,后面可以根据这个制作衡量用户活跃度的特征
6.文章被用户点击的次数也有很大的区分度,后面可以根据这个制作衡量文章热度的特征
7.用户看的新闻,相关性是比较强的,所以往往我们判断用户是否对某篇文章感兴趣的时候, 在很大程度上会和他历史点击过的文章有关
8.用户点击的文章字数有比较大的区别, 这个可以反映用户对于文章字数的区别
9.用户点击过的文章主题也有很大的区别, 这个可以反映用户的主题偏好
10.不同用户点击文章的时间差也会有所区别, 这个可以反映用户对于文章时效性的偏好
所以根据上面的一些分析,可以更好的帮助我们后面做好特征工程, 充分挖掘数据的隐含信息。