Kaggle 上一个用户分类问题
一个 用户 分类 Kaggle 问题
2023-09-14 09:13:02 时间
其实这个项目的关键点在与存在大量的离散的特征,对于离散的维度的处理方法一般就是把每个离散维度的每个特征水平都像SQL行列装换那样转成一个维度,这个维度下的值只有0或1。但这样势必会导致维度暴增。这个项目就是典型,用merge函数把用户表和活动表链接后,存在大量的离散维度。这时候就要用到一种处理维度太多的方法,就是所谓“Hash Trick” 。
假设你的离散维度是用户的学历,每个特征水平拆成单个维度后,有了如下几个维度:
研究生以上,大学本科,大专,高中,初中,小学
有一个hash函数,hash函数的size是5:
hash(研究生以上)=2
hash(大学本科)=3
hash(大专)=4
hash(高中)=2
hash(初中)=0
hash(小学)=0
因为hash函数的size是5,所以所有的结果都不可能大于等于5(0-4)
那么降维以后原本“研究生以上,大学本科,大专,高中,初中,小学”这6个特征就变成了5个特征,每个特征上的值是这个hash的结果值出现的次数:
[2,0,2,1,1]
0出现了两次,1出现了0次,2出现了两次以此类推。
参考模型里出现了这样一个formula:
f <- ~ . - people_id - activity_id - date.x - date.y - 1
这里解释下,对于hashed.model.matrix这个函数,因为是用来降维的,不关心因变量所有tide符号左边没有值,减号表示剔除一些维度,最后“-1”是因为hashed.model.matrix会在第一列产生一些不明用途的数据,参考这篇链接:点击打开链接
param <- list(objective = "binary:logistic",
eval_metric = "auc",
booster = "gblinear",
eta = 0.03)
上面的Param就是最后boost用到的参数,可以看到著名的逻辑回归,eta表示boost调整权重时的尺度,
booster参数可以选gblinear或gbtree,有待介绍
相关文章
- 让你彻底弄懂Python编程经典案例【考题】之反转一个值
- 用java写一个登录界面的完整代码_javaweb简单的用户登录界面
- 看看这个物联网系统,那叫一个优雅!
- CIKM2022 | ChiQA-一个基于20万个真实用户问题的图片问答数据集
- TailwindCSS—一个用于实现快速UI开发的实用工具集CSS框架。
- 2022-12-15:寻找用户推荐人。写一个查询语句,返回一个客户列表,列表中客户的推荐人的编号都 不是 2。对于示例数据,结果
- 一个实现微信登录、微信用户信息存储、微信服务器管理、微信第三方平台等高级功能的Abp应用模块组
- 开发一个微信小程序(8):查询天气-获取用户所在位置,查询当前城市天气
- SQLServer 错误 18264 数据库已备份。 数据库: %s,创建日期(时间): %s(%s),转储的页数: %d,第一个 LSN: %s,最后一个 LSN: %s,转储设备数: %d,设备信息: (%s)。 这只是一条信息性消息。 不需要任何用户操作。 故障 处理 修复 支持远程
- 怎么判断java中一个元素存在list集合中详解编程语言
- 如何在Linux中删除一个用户(linux删除一个用户)
- Python3.x:定义一个类并且调用详解编程语言
- 的体验Linux:一次让用户经历的旅程(linux一个用户)
- Linux:不仅仅是一个目录(linux不是目录)
- 在Ubuntu 12.04 中用户如何更换一个更快的软件源?
- 创建Linux用户:一个必不可少的技能(linux中创建用户)
- 查看MySQL用户权限:一个安全必要的步骤(查看mysql用户的权限)
- 如何解决Oracle记录被其他用户锁定的问题(oracle记录被另一个用户锁住)
- 一个用户友好,轻巧,快速的电子邮件客户端。
- Oracle断开用户:一个让人不快的过程(oracle 断开 用户)
- Linux快速部署项目:一个轻松又高效的选择(linux 部署项目)
- 在Redis中实现高可用性架构(一个redis实现高可用)
- Oracle用户汇总一个管理者的指引(oracle中所有用户)
- 权限Oracle数据库中的用户权限一个深入探究(Oracle下有哪些用户)
- 写一个用户在线显示的程序
- 在VBScript中实现-函数/方法名作为参数传入另一个函数
- javascript一个判断浏览器类型的函数(类)
- 一个简单的SQL行列转换语句
- 一串字字符中多个逗号替换为一个既标准分隔符(正则表达式)