回复: 24
跳转到指定楼层
上一主题 下一主题
收起左侧

求问大家一道长问题,如何处理categorical变量很多level问题,比如state

 
全局:

2019(7-9月) 统计类 博士 全职@ - 网上海投 - 其他  | | Other | 应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
问一下大牛们,最近总是遇到问题问如何处理categorical 变量很多level问题,比state? 我回答target encoding,面试官说会overfitting. 想问问大家还有好的方法吗?


补充内容 (
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
ree,模型会bias. . 1point3acres
还有就是combine group. 我也不知道行不行,所以问问大家意见,因为工作中肯定非常常见。

评分

参与人数 4大米 +13 收起 理由
drkmd8 + 1 赞一个
sfeng0097 + 1 赞一个
匿名用户-VUNSN + 10
xujw07 + 1 good question!

查看全部评分


上一篇:Aibee Machine Learning Engineer/DS 面经
下一篇:Point 72 Data Scientist/ Quant Researcher 面经

本帖被以下淘专辑推荐:

drenched 2019-7-4 18:34:21 | 只看该作者
全局:
我觉得你的理解已经很好了 我觉得有以下几点或可一试.
1. 只对train做target encoding 如果test里面有新的类出现 一种方法是可以把新类的值设成一个很小的数(这里借用了Naive Bayes的Laplace regularization的思想)另外一种方法是可以用其它已知类的median或mean来代替
这样的话面试官口中的overfitting 或者 data leakage的问题就或者得到避免 但biased的问题还是存在的
2. 为了避免bias 可以用 k-fold cross validation 或者  cross validation within cross validation 这个方法我没有尝试过 但kaggle里有人讨论,详情参见https://www.kaggle.com/c/mercede ... ussion/36136#201638  我个人觉得这不失为一个消除bias的好方法-baidu 1point3acres
3. bucket. 根据实际的business需求将变量的类装进不同的bucket  比如state可以分成东南西北中 又或者可以根据具体业务对state进行count 选出前十state 再用other代替等下的state 当然这些比较主观了 最好和team和有domain knowledge的人一起交流
.google  и4. Lightgbm. lightgbm支持在数据中包含categorical features, 这样就简单了,不用自己去encoding. 其核心算法是利用了直方图算法(deafult max_bin 好像是256)然后计算 gradient 和 hessian 来找出最optimal 的split https://blog.csdn.net/anshuai_aw1/article/details/83040541  https://blog.csdn.net/qq_35946969/article/details/86750898.

目前就只能想这么多 欢迎讨论

补充内容 (2019-7-7 16:59):
5. Entity Embeddings of Categorical Variables. 核心思想来自这篇paper: https://arxiv.org/pdf/1604.06737.pdf 更多细节可以参考这篇文章:https://medium.com/@satnalikamay ... -keras-165ff2773fc9

补充内容 (2019-7-7 17:00):. .и
https://medium.com/@satnalikamay ... -keras-165ff2773fc9

补充内容 (2019-7-7 17:00):
embedding example 1: https://github.com/mayanksatnali ... gs_regression.ipynb

补充内容 (2019-7-7 17:01):.1point3acres
embedding example 2: https://github.com/mayanksatnali ... tion_for_blog.ipynb

评分

参与人数 15大米 +49 收起 理由
Yana + 1 给你点个赞!
sanmao0715 + 1 赞一个
luckyPidgey + 1 赞一个
yshaw + 1 赞一个
ShikiH + 2 给你点个赞!

查看全部评分

回复

使用道具 举报

全局:
别想太多…直接string encoding. From 1point 3acres bbs
扔进xgboost直接当做numberic来处理
相信我 效果惊人
回复

使用道具 举报

全局:
huixingzhijia 发表于 2019/07/04 21:31:07


谢谢谢谢 太牛了。看你是统计phd 好厉害

感觉类似state的categorical variable可以被某种numerical替代?比如average income,population density等等
回复

使用道具 举报

🔗
sweetsnow 2019-7-3 22:20:47 | 只看该作者
本楼:
全局:
one hot?
回复

使用道具 举报

全局:
嗯我也觉得用one-hot encoding会更好一些
回复

使用道具 举报

🔗
oralur 2019-7-3 22:45:48 | 只看该作者
全局:
建议参考俄罗斯人的catboost
回复

使用道具 举报

全局:
Frances0412 发表于 2019/07/03 22:42:40
嗯我也觉得用one-hot encoding会更好一些

如果state太多 one hot并不好 我觉得如果可以 应该把state分段 一段给一个label
回复

使用道具 举报

全局:
hashing? 根据你要处理的问题把好几个state 放到一个category里面。
比如问题跟人口相关就按照人口大体分类,跟收入相关就按照收入大体分类。. Χ
回复

使用道具 举报

🔗
jzhao59 2019-7-4 05:35:49 | 只看该作者
全局:
在NN里面很流行embedding,可以参考一下,让模型来决定参数,类似于word2vector
回复

使用道具 举报

🔗
lanyiyun 2019-7-4 09:55:53 | 只看该作者
全局:
本帖最后由 lanyiyun 于 2019-7-4 09:57 编辑

可以考虑用binary encoding或者feature hashing
你用target encoding可以,但局限于regression不适用于classification
一般实际应用中也会把太多level整合一下再用one hot,因为太多level建模有时也没有太大的意义. ----
回复

使用道具 举报

全局:
state的话难道不可以直接转成centroid lat+long嘛?
回复

使用道具 举报

🔗
 楼主| huixingzhijia 2019-7-4 10:52:54 来自APP | 只看该作者
全局:
lanyiyun 发表于 2019/07/04 09:55:53
. check 1point3acres for more.
可以考虑用binary encoding或者feature hashing
你用target encoding可...
.1point3acres
能不能问一下为啥不能用来classification, 可以用mean frequency 来处理variable嘛?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表