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

DataWhale 机器学习夏令营第三期

DataWhale 机器学习夏令营第二期

  • 学习记录一 (2023.08.18)
    • 1.赛题理解
    • 2.缺失值分析
    • 3. 简单特征提取
    • 4. 数据可视化
      • 离散变量
      • 离散变量分布分析

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


学习记录一 (2023.08.18)

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

1.赛题理解

赛题数据由约62万条训练集、20万条测试集数据组成,共包含13个字段。

  • 其中uuid为样本唯一标识,
  • eid为访问行为ID,
  • udmap为行为属性,其中的key1到key9表示不同的行为属性,如项目名、项目id等相关字段,
  • common_ts为应用访问记录发生时间(毫秒时间戳),
  • 其余字段x1至x8为用户相关的属性,为匿名处理字段。
  • target字段为预测目标,即是否为新增用户。

2.缺失值分析

print('-----Missing Values-----')
print(train_data.isnull().sum())print('\n')
print('-----Classes-------')
display(pd.merge(train_data.target.value_counts().rename('count'),train_data.target.value_counts(True).rename('%').mul(100),left_index=True,right_index=True
))

分析:数据无缺失值, 533155(85.943394%)负样本, 87201(14.056606%)正样本

数据分布不均的处理:

  • 阈值迁移
  • 设置样本权重
weight_0 = 1.0  # 多数类样本的权重
weight_1 = 8.0  # 少数类样本的权重
dtrain = lgb.Dataset(X_train, label=y_train, weight=y_train.map({0: weight_0, 1: weight_1}))
dval = lgb.Dataset(X_val, label=y_val, weight=y_val.map({0: weight_0, 1: weight_1}))

3. 简单特征提取

行为相关特征:eid和udmap相关特征提取

  • udmap中value特征提取:baseline中已经给出
  • udmap中key特征提取
import jsondef extract_keys_as_string(row):if row == 'unknown':return Noneelse:parsed_data = json.loads(row)keys = list(parsed_data.keys())keys_string = '_'.join(keys)  # 用下划线连接 keyreturn keys_stringtrain_df['udmap_key'] = train_df['udmap'].apply(extract_keys_as_string)
train_df['udmap_key'].value_counts()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PkbowYDJ-1692365546794)(C:\Users\ZYM\AppData\Roaming\Typora\typora-user-images\image-20230818195454065.png)]

观察eid和udmap_key 对应关系

train_df.groupby('eid')['udmap_key'].unique()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9zqnrzDe-1692365546795)(C:\Users\ZYM\AppData\Roaming\Typora\typora-user-images\image-20230818195553955.png)]

分析:可以看到eid和key是强相关甚至是一一对应的,后续可以围绕着eid、key、value构造行为相关特征。

4. 数据可视化

离散变量

查看各个特征情况:

for i in train_data.columns:if train_data[i].nunique() < 10:print(f'{i}, {train_data[i].nunique()}: {train_data[i].unique()}')else:print(f'{i}, {train_data[i].nunique()}: {train_data[i].unique()[:10]}')

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sPwmt4rl-1692365546795)(C:\Users\ZYM\AppData\Roaming\Typora\typora-user-images\image-20230818200557544.png)]
分析:

  • [‘eid’, ‘x3’, ‘x4’, ‘x5’] 为取值较多的类别特征想

  • [‘x1’, ‘x2’, ‘x6’,'x7, ‘x8’]为取值较少的类别特征, x8 基本确定为性别特征

离散变量分布分析

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

绘制代码:

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()

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下一步,分析数据,构建特征。

相关文章:

DataWhale 机器学习夏令营第三期

DataWhale 机器学习夏令营第二期 学习记录一 (2023.08.18)1.赛题理解2.缺失值分析3. 简单特征提取4. 数据可视化离散变量离散变量分布分析 DataWhale 机器学习夏令营第三期 ——用户新增预测挑战赛 学习记录一 (2023.08.18) 已跑通baseline&#xff0c;换为lightgbm基线&#…...

回归预测 | MATLAB实现BES-LSSVM秃鹰搜索算法优化最小二乘支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现BES-LSSVM秃鹰搜索算法优化最小二乘支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现BES-LSSVM秃鹰搜索算法优化最小二乘支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&a…...

python分析实战(4)--获取某音热榜

1. 分析需求 打开某音热搜&#xff0c;选择需要获取的热榜如图 查找包含热搜内容的接口返回如图 将url地址保存 2. 开发 定义请求头 headers {Cookie: 自己的cookie,Accept: application/json, text/plain, */*,Accept-Encoding: gzip, deflate,Host: www.douyin.com,…...

Java根据List集合中的一个字段对集合进行去重

利用HashSet 创建了一个HashSet用于存储唯一的字段值&#xff0c;并创建了一个新的列表uniqueList用于存储去重后的对象。遍历原始列表时&#xff0c;如果字段值未在HashSet中出现过&#xff0c;则将其添加到HashSet和uniqueList中。 List<Person> originalList new Ar…...

(AtCoder Beginner Contest 315)

A.直接模拟即可 import random import sys import os import math from collections import Counter, defaultdict, deque from functools import lru_cache, reduce from itertools import accumulate, combinations, permutations from heapq import nsmallest, nlargest, h…...

API 接口选择那个?RESTful、GraphQL、gRPC、WebSocket、Webhook

大家好&#xff0c;我是比特桃。目前我们的生活紧紧地被大量互联网服务所包围&#xff0c;互联网上每天都有数百亿次API调用。API 是两个设备相互通讯的一种方式&#xff0c;人们在手机上每次指尖的悦动&#xff0c;背后都是 API 接口的调用。 本文将列举常见的一些 API 接口&…...

「Python|音视频处理|环境准备」如何在Windows系统下安装并配置音视频处理工具FFmpeg

本文主要介绍如何在Windows系统下安装并配置音视频处理工具FFmpeg&#xff0c;方便使用python进行音视频相关的下载或编辑处理。 文章目录 一、下载软件二、解压并配置三、验证安装 一、下载软件 首先要去 ffmpeg官网 下载软件包 由于上面直接下载的按钮是.tar.xz格式的。为了…...

软考高级架构师下篇-12层次式架构设计理论与实践

目录 1. 考情分析2. 层次式体系结构概述3. 表现层框架设计4. 中间层框架设计5. 数据访问层设计6. 数据架构规划与设计7. 物联网层次架构设计8. 前文回顾1. 考情分析 根据考试大纲,层次式架构设计理论与实践知识点会涉及单选题型(约占2~5分)和案例题(25分),本小时内容偏重于方…...

234. 回文链表

234. 回文链表 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* L…...

LInux之例行工作

目录 场景 单一执行例行任务 --- at&#xff08;一次性&#xff09; 安装 命令详解 语法格式 参数及作用 时间格式 案例 at命令执行过程分析 循环执行的例行性任务--crontab&#xff08;周期性&#xff09; crontd服务安装 linux 任务调度的工分类 crontab工作过程…...

C++,从“hello world“开始

一、"hello world" #inclue <iostream>using namespace std;int main() {cout << "hello world" << endl;return 0; } 1.1 #include&#xff1a;预处理标识 1.2 <iostream>&#xff1a;输入输出流类所在头文件 1.2.1 istream&a…...

/root/.ssh/config line 2: Bad protocol 2 host key algorithms ‘+ssh-rsa‘.

文章目录 1、问题2、查看openssh版本3、解决问题4、重新生成密钥5、查看是否可连接工蜂 1、问题 ssh访问工蜂报错&#xff1a; [rootlocalhost .ssh]# ssh -T gitgit.code.tencent.com /root/.ssh/config line 2: Bad protocol 2 host key algorithms ‘ssh-rsa’. 2、查看o…...

mac m1上系统内录内部声音的方法/无需安装Blackhole

总所周知&#xff0c;m1的mac不能录制桌面音频&#xff0c;obsstudio都不行。 最快的解决方法就是下载飞书&#xff1a; 登陆后新建直播/视频会议&#xff1a; 共享的时候选择下面的两个钩上去就好了...

数字人学习目录

数字人学习目录 百度PaddlePaddleHub图像风格迁移模型pp-tinypose模型 PaddleGANPaddleLitePaddleDetectionPP-TinyPose 人体骨骼关键点识别 PaddleSpeechVisualDLPaddleBobo TransformerWav2LibCLIPFFMpeg模型库数据集学习天地PythonJupyter Notebook Unity3DUE 百度Paddle P…...

PHP 房产网站系统Dreamweaver开发mysql数据库web结构php编程计算机网页项目

一、源码特点 PHP 房产网站系统是一套完善的WEB设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 源码 https://download.csdn.net/download/qq_41221322/88233553 论文 https://download…...

0基础入门代码审计-2 Fortify初探

0x01 序言 目前又加入一位新童鞋了&#xff0c;最近将会再加入cs相关的专栏&#xff0c;都是以基础为主&#xff0c;毕竟太复杂的东西&#xff0c;能看懂的人太少。 0x02 准备工具 1、Fortify 2、需要审计的源码 0x03 Fortify的简单使用 1、 1、在开始菜单栏中找到Audit Wo…...

qiiuzhiji4

本篇是从慧与离职后到2023年8月21日这段时间的经历 2023/7/31至2023/8/21 本篇初次写于2023年8月21日 从慧与离职后基本上就是在专心找工作了&#xff0c;但是有在这段时间找工作经历的人都明白&#xff0c;IT行业不复以往了。尤其是对于我这样的普通二本学历的人来说&#xff…...

构建 NodeJS 影院微服务并使用 docker 部署【01/4】

图片来自谷歌 — 封面由我制作 一、说明 构建一个微服务的电影网站&#xff0c;需要Docker、NodeJS、MongoDB&#xff0c;这样的案例您见过吗&#xff1f;如果对此有兴趣&#xff0c;您就继续往下看吧。 在本系列中&#xff0c;我们将构建一个 NodeJS 微服务&#xff0c;并使用…...

变频器和plc之间无线MODBUS通讯

在工业现场由PLC远程控制变频器的应用非常常见&#xff0c;如果挖沟布线不便或者变频器在移动设备上&#xff0c;那么采用无线通讯就是最佳方案。 这里我们选用最常用的三菱 FX2N PLC和三菱变频器为例&#xff0c;并结合日系plc专用无线通讯终端DTD435M来说明PLC与变频器之间的…...

【云原生】3分钟快速在Kubernetes1.25部署Prometheus2.42+Grafana9.5.1+Alertmanager0.25

文章目录 1、简介2、GitHub地址3、环境信息4、安装5、访问Grafana1、简介 Prometheus-operator帮助我们快速创建Prometheus+Grafana+Alertmanager等服务,而kube-prometheus更加完整的帮助我们搭建全套监控体系,这包括部署多个 Prometheus 和 Alertmanager 实例, 指标导出器…...

Redis中常见的缓存穿透、缓存击穿、缓存雪崩、缓存预热解决方案

文章目录 一、缓存穿透1. 什么是缓存穿透2. 解决方案2.1 无效的key存放到Redis2.2 引入布隆过滤器2.3 如何选择&#xff1a; 二、缓存击穿1. 什么是缓存击穿2. 解决方案 三、缓存雪崩1. 什么是缓存雪崩2. 解决方案2.1 均匀过期2.2 热点数据缓存永远不过期2.3 采取限流降级的策略…...

第二章-自动驾驶卡车-自动驾驶卡车前装量产的要求

1、自动驾驶卡车的特点与挑战 重卡主要运行在相对封闭的高速公路&#xff0c;相较城市道路场景看似更简单。但是&#xff0c;由于重卡特有的物理特性、运行环境和商业运营要求&#xff0c;相较于乘用车的自动驾驶系统&#xff0c;重卡的自动驾驶系统对车辆的感知距离和精度、系…...

Midjourney API 申请及使用

Midjourney API 申请及使用 在人工智能绘图领域&#xff0c;想必大家听说过 Midjourney 的大名吧&#xff01; Midjourney 以其出色的绘图能力在业界独树一帜。无需过多复杂的操作&#xff0c;只要简单输入绘图指令&#xff0c;这个神奇的工具就能在瞬间为我们呈现出对应的图…...

mysql mysql 容器 忽略大小写配置

首先能够连接上mysql&#xff0c;然后输入下面这个命令查看mysql是否忽略大小写 show global variables like %lower_case%; lower_case_table_names 0&#xff1a;不忽略大小写 lower_case_table_names 1&#xff1a;忽略大小写 mysql安装分为两种&#xff08;根据自己的my…...

第58步 深度学习图像识别:Transformer可视化(Pytorch)

一、写在前面 &#xff08;1&#xff09;pytorch_grad_cam库 这一期补上基于基于Transformer框架可视化的教程和代码&#xff0c;使用的是pytorch_grad_cam库&#xff0c;以Bottleneck Transformer模型为例。 &#xff08;2&#xff09;算法分类 pytorch_grad_cam库中包含的…...

angular实现全局组件

之前我们实现全局组件的第一种方式。我们是在定义了组件的时候通过在declares:[component],然后exports出该组件。最后在页面中每次导入该组件&#xff0c;而这次我们将采用另一种方式来实现 1 新建公用组件&#xff1a; navbreadcrumbnavbreadcrumb.component.htmlnavbreadc…...

Spring编程模型(范式)

面向对象编程 契约接口&#xff1a;Aware aware:意识到的 契约接口(Aware)是Spring框架中的一个特性&#xff0c;它允许Bean对象意识到它们所在的环境并与之进行交互&#xff0c;用于提供特定的功能或信息给Bean对象。这些接口通常作为回调接口&#xff0c;在Bean初始化过程…...

Golang GORM 单表删除

删除只有一个操作&#xff0c;delete。也是先找到再去删除。 可以删除单条记录&#xff0c;也可以删除多条记录。 var s Studentdb.Debug().Delete(&s, "age ?", 100)fmt.Println(s)[15.878ms] [rows:1] DELETE FROM student WHERE age 100var s Studentdb.De…...

Windows 下 MySQL 源码学习环境搭建步骤【建议收藏】

【建议收藏】Windows 下如何安装最新版 MySQL 源码学习的调试环境步骤。 作者&#xff1a;芬达 《芬达的数据库学习笔记》公众号作者&#xff0c;开源爱好者&#xff0c;擅长 MySQL、ansible。 本文来源&#xff1a;原创投稿 爱可生开源社区出品&#xff0c;原创内容未经授权不…...

redis总复习

springboot基于redisson实现看门狗锁:Springboot基于Redisson实现Redis分布式可重入锁【案例到源码分析】_springboot redission lock_AP0906424的博客-CSDN博客 springboot基于redis实现设置缓存和过期时间的代码&#xff1f;包括key的设计 https://mbd.baidu.com/ug_share…...

大连网站制作 姚喜运/杭州优化公司在线留言

凌晨四点的东方是什么样子的&#xff0c;这个世界上恐怕只有科比和加班的程序员知道。 如果不是隔壁的高楼挡住了我的视线&#xff0c;我想东方的鱼肚白一定被我尽收眼底。想想都很多年没有去亲眼看日出了&#xff0c;但j是这却是这近一年第四次通宿加班了&#xff0c;也是游戏…...

网站建设 发布/深圳网络营销和推广方案

今天在写存储过程的时候&#xff0c;发现一个很诡异的问题&#xff0c;存储过程里就一个最简单的SELECT动态SQL语句。编写完成以后&#xff0c;执行这个存储过程&#xff0c;总是提示ORA-00942: table or view does not exist&#xff08;ERROR -942 ORA-00942: 表或视图不存在…...

网站设计做微信发现界面/企业品牌推广方案

具体代码如下所述&#xff1a; srpgame.py #!/urs/bin/env python import random all_choice [石头,剪刀,布] win_list [[石头,剪刀],[剪刀,布],[布,石头]] prompt """ (0) 石头 (1) 剪刀 (2) 布 Please input your choice(0/1/2): """ compu…...

网站建设安全需求/百度安装免费下载

【广东最美的山】&#xff1a;肇庆鼎湖山点评&#xff1a;鼎湖山自然环境、历史沉淀、规模、各方面综合条件较好&#xff0c;最能代表广东山的美。【广东最美的峡谷】&#xff1a;乳源大峡谷点评&#xff1a;广东最大的峡谷&#xff0c;对驴友来说&#xff0c;最吸引人的是&…...

索引网站有哪些/网络推广是做什么的

本文记录了linux mysql 8.0.18 安装配置图文教程&#xff0c;供大家参考&#xff0c;具体内容如下1、官网安装包下载地址2、我这里通过xftp将安装包上传至Linux服务器3.解压解压命令&#xff1a;tar -xvf mysql-8.0.18-linux-glibc2.12-x86_64.tar继续解压需要的那一个命令&…...

大兴模版网站开发公司哪家好/最新新闻热点事件及评论

最近刚接到小程序相关的测试任务&#xff0c;主要是业务的一些整理&#xff0c;和遇到一些走过坑的记录。 需求不复杂&#xff0c;当用户是新用户并且在活动时间内在保卖拉新活动时间内&#xff0c;卖手机下单&#xff0c;在下单详情页就可以展示新用户奖励。非首单或者首单用户…...