当前位置: 首页 > news >正文

DataWhale 机器学习夏令营第三期——任务二:可视化分析

DataWhale 机器学习夏令营第三期

  • 学习记录二 (2023.08.23)——可视化分析
    • 1.赛题理解
    • 2. 数据可视化分析
      • 2.1 用户维度特征分布分析
      • 2.2 时间特征分布分析

DataWhale 机器学习夏令营第三期
——用户新增预测挑战赛


学习记录二 (2023.08.23)——可视化分析

2023.08.17
已跑通baseline,换为lightgbm基线,不加任何特征线上得分0.52214
添加baseline特征,线上得分0.78176
暴力衍生特征并微调模型参数,线上得分0.86068
2023.08.23
数据分析、衍生特征:0.87488
衍生特征、模型调参:0.89817

交流分享视频:
【DataWhale“用户新增预测挑战赛”交流分享-哔哩哔哩】 https://b23.tv/zZMLtFG

1.赛题理解

在这里插入图片描述

这次比赛特征主要可以分为以下三个维度:

  • 行为维度:eidudmap
    • udmap的key处理成了类别特征
  • 时间维度:common_ts
    • 进行了时间戳特征的提取:day, hour, minute
  • 用户维度:x1~x8

2. 数据可视化分析

使用以下代码绘制前还需做一些设置,具体可以参考如下链接:
https://www.kaggle.com/code/jcaliz/ps-s03e02-a-complete-eda/notebook
该notebook内提供了丰富的可视化分析代码和思路,值得参考。

绘制代码:

def plot_cate_large(col):data_to_plot = (all_df.groupby('set')[col].value_counts(True)*100)fig, ax = plt.subplots(figsize=(10, 6))sns.barplot(data=data_to_plot.rename('Percent').reset_index(),hue='set', x=col, y='Percent', ax=ax,orient='v',hue_order=['train', 'test'])x_ticklabels = [x.get_text() for x in ax.get_xticklabels()]# Secondary axis to show mean of targetax2 = ax.twinx()scatter_data = all_df.groupby(col)['target'].mean()scatter_data.index = scatter_data.index.astype(str)ax2.plot(x_ticklabels,scatter_data.loc[x_ticklabels],linestyle='', marker='.', color=colors[4],markersize=15)ax2.set_ylim([0, 1])# Set x-axis tick labels every 5th valuex_ticks_indices = range(0, len(x_ticklabels), 5)ax.set_xticks(x_ticks_indices)ax.set_xticklabels(x_ticklabels[::5], rotation=45, ha='right')# titlesax.set_title(f'{col}')ax.set_ylabel('Percent')ax.set_xlabel(col)# remove axes to show only one at the endhandles = []labels = []if ax.get_legend() is not None:handles += ax.get_legend().legendHandleslabels += [x.get_text() for x in ax.get_legend().get_texts()]else:handles += ax.get_legend_handles_labels()[0]labels += ax.get_legend_handles_labels()[1]ax.legend().remove()plt.legend(handles, labels, loc='upper center', bbox_to_anchor=(0.5, 1.08), fontsize=12)plt.tight_layout()plt.show()

2.1 用户维度特征分布分析

可视化分析说明:

  1. 研究离散变量['eid', 'x3', 'x4', 'x5‘,'x1', 'x2', 'x6','x7', 'x8'']的分布,蓝色是训练集,黄色是验证集,分布基本一致
  2. 粉色的点是训练集下每个类别每种取值的target的均值,也就是target=1的占比

在这里插入图片描述
该图主要分析类别数较少的离散变量:

  • 训练集和测试集分布比较均匀
  • x1主要集中在 x1=4x2分布比较均匀,x6基本集中在14两个值,x7分布比较均匀,可能是一个关键特征
  • x8可能是性别特征,特征重要性较低
  • udmap_key为提取出的特征,存在缺失值

在这里插入图片描述

  • x3主要集中在41下,占比太大,特征重要性很低

在这里插入图片描述

  • x4中各个类别下target的分布变化较大,可能是一个关键特征
    在这里插入图片描述
  • x5中各个类别同x4,target的分布变化较大,可能是一个关键特征,但特征数量太多在衍生特征时需要注意避免产生稀疏性
    在这里插入图片描述

2.2 时间特征分布分析

主要绘制了common_tsdayhour 的变化情况

在这里插入图片描述

  • day的值和用户增长有很大的关系,可以发现在10、14和17新用户有明显的增长
  • 老用户对应也呈现出增长趋势
    在这里插入图片描述
    绘制了从day=10day=18的新老用户变化情况
  • 新老用户的数量在每天的各个时间段呈现基本相同的趋势
  • 进一步观察原始数据可以发现,三个峰的出现是因为在该三个时间段数据量较其他时间段多
  • 可以进一步绘制出各个时间段人数占全天人数的占比图来进一步分析数据
http://www.lryc.cn/news/146305.html

相关文章:

  • ubuntu 上安装flutter dart android studio
  • 【Golang】go交叉编译
  • 【人工智能】—_贝叶斯网络、概率图模型、全局语义、因果链、朴素贝叶斯模型、枚举推理、变量消元
  • 学习笔记:ROS使用经验( 查看rostopic的信息)
  • 数据库——redis内存淘汰,持久化机制
  • 亚马逊云科技 云技能孵化营 我也说ai
  • 『PyQt5-基础篇』| 04 Qt Designer的初步快速了解
  • SpringCloud学习笔记(十一)_Hystrix仪表盘
  • # ruby安装设置笔记
  • 关于对文件路径权限判断的记录
  • git 基础
  • C语言网络编程实现广播
  • js对url进行编码解码(三种方式)
  • React面向组件编程
  • Linux 多线程同步机制(上)
  • C++学习vector
  • 17.3 【Linux】systemctl 针对 service 类型的配置文件
  • 融云获评「创业邦 · 最具创新价值出海服务商」
  • 【中危】Apache XML Graphics Batik<1.17 存在SSRF漏洞 (CVE-2022-44729)
  • AssemblyManager 程序集管理器
  • 几个nlp的小任务(生成式任务——语言模型(CLM与MLM))
  • 单元测试用例mock的使用方法
  • 3D步进式漫游能够在哪些行业应用?
  • 2023蓝帽杯初赛ctf部分题目
  • vue3+ts封装弹窗,分页封装
  • 2023-08-30 数据库-并发控制-冲突可串行化调度-是否可串行化检测-优先图-分析
  • 人员着装识别算法 yolo
  • Linux:权限
  • Unity记录4.3-存储-点击Tilemap保存或读取区块
  • 【小吉测评】哔哩哔哩接入AI?!效果如何?