由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - encode high cardinality categorical features
相关主题
想请教大牛们一个处理categorical variable in Machine Learning 的问题搜索引擎的克星是什么呢?
老生常谈,民科问应该如何处理分类(categorical)变量?如何把文字转换成机器可读形式?
data分类问题请教问个面试题目
怎么把 integer 转为 multi-byte integer format?a question about CGI
大家来看看这个纯Javascript实现的QR二维码生成器How to encode YYYY-MM-DD?
求教, python 对于很奇怪的字符的encoding 怎么处理?请教:JavaScript怎么复制一个node(含子节点)? (转载)
用react的试过中文么?how to login mitbbs with java code (转载)
有没有做sentiment analysis的,求思路请教:如何用Java get URL content是.swe并且是utf-16 encoding的文件
相关话题的讨论汇总
话题: encode话题: features话题: high
进入Programming版参与讨论
1 (共1页)
g*******u
发帖数: 3948
1
打算 lightgbm or xgboost
有几个 categorical features 有5000个不同的值。 这种怎么encode ?
谢谢
另外一般说high cardinality categorical features 多少个算是high?
thx
w***g
发帖数: 5958
2
word2vec

【在 g*******u 的大作中提到】
: 打算 lightgbm or xgboost
: 有几个 categorical features 有5000个不同的值。 这种怎么encode ?
: 谢谢
: 另外一般说high cardinality categorical features 多少个算是high?
: thx

m****o
发帖数: 182
3
binary encoding : 2^12 = 5000

【在 g*******u 的大作中提到】
: 打算 lightgbm or xgboost
: 有几个 categorical features 有5000个不同的值。 这种怎么encode ?
: 谢谢
: 另外一般说high cardinality categorical features 多少个算是high?
: thx

f*********r
发帖数: 30
4
binary encoding是一个值得一试的办法。类似的还有hashing trick。
除此之外,google "supervised ratio" 和 "weight of evidence",把categorical变
成numerical。
还有就是看level distribution,如果是几个major level和一大堆minor level,
minor level数量小过某个阈值,比如总feature数乘十这种,也可以考虑合并minor
level。
g*******u
发帖数: 3948
5
binary 应该不适合tree 类型的分类器吧 。素以首先排除
flamewalker 说的后面几个可能可以把?我想的就是根据分布 用直方图。这样就转化
为numerical的了。 吧所有很小的 都轨到一类
因为 5000多种 很多 直方图数值很小 直接用 我担心都接近0 可能会有问题 所以想
小于某个值的都归到 一个数值。
wudong说的word2vec貌似比较高级? 听过没用过。 我可以看看 。 问一下,
word2vec适合这种tree类型的 分类器吗?
thx
m******r
发帖数: 1033
6
什么叫做binary encoding ? 比如我一个变量有8层, 分别代表8个州,NY,CA,TX,NY,
etc
然后你用3个变量做binary encoding?? 000, 001, 010,110,... 111 ??
看起来不太对劲吧?
f*********r
发帖数: 30
7
binary和传统的dummy code都不适合决策树类型的分类器,因为把寻找最优分岔的问题
限制在one vs all这个局限里面了。但是在实际应用中效果还是不错的。有文章说在
cardinality很大的情况下,直接把每个level按照出现概率rank一下然后就哪rank取代
之变成numerical feature也一样work。实际上真正严格遵守最悠久或者近似最优解来
做决策树分叉的算法在high cardin的情况下非常慢,这也是为啥r的随机森林只支持
cardinality小于53的categorical feature。Python里的版本直接就是用的rank来替代
的。
xgboost只支持数值变量,把这个问题丢给了用户去自己找合适的编码方案。
word2vec是根据在意过语料集里单词上下文co-occurrance的频率来学习一个单次的分
布式表达或者向量表达,这个表达的euclidean distance保留一些语义上和语法上的相
似度或者可替代度。这个概念也可以用在其他有co-occurrance的feature上,不仅限于
NLP。用这个方法做feature转换需要有语料集或者co-occurrance matrix来做训练。不
是所有high cardinality问题都适合

【在 g*******u 的大作中提到】
: binary 应该不适合tree 类型的分类器吧 。素以首先排除
: flamewalker 说的后面几个可能可以把?我想的就是根据分布 用直方图。这样就转化
: 为numerical的了。 吧所有很小的 都轨到一类
: 因为 5000多种 很多 直方图数值很小 直接用 我担心都接近0 可能会有问题 所以想
: 小于某个值的都归到 一个数值。
: wudong说的word2vec貌似比较高级? 听过没用过。 我可以看看 。 问一下,
: word2vec适合这种tree类型的 分类器吗?
: thx

f*********r
发帖数: 30
8
你理解的没错,看起来不喝啦,但是就像dummy code一样,只保留部分原始
categorical feature的特性,但是在实际中能work就行。
机器学习就是这样,很多trick没有理论支持甚至违反理论假设,但是用起来可能效果
不错,比如naive bayes

【在 m******r 的大作中提到】
: 什么叫做binary encoding ? 比如我一个变量有8层, 分别代表8个州,NY,CA,TX,NY,
: etc
: 然后你用3个变量做binary encoding?? 000, 001, 010,110,... 111 ??
: 看起来不太对劲吧?

S***s
发帖数: 104
9
一般不是都会做个fe把high cardinal的category转成numerical的feature么?

【在 f*********r 的大作中提到】
: binary和传统的dummy code都不适合决策树类型的分类器,因为把寻找最优分岔的问题
: 限制在one vs all这个局限里面了。但是在实际应用中效果还是不错的。有文章说在
: cardinality很大的情况下,直接把每个level按照出现概率rank一下然后就哪rank取代
: 之变成numerical feature也一样work。实际上真正严格遵守最悠久或者近似最优解来
: 做决策树分叉的算法在high cardin的情况下非常慢,这也是为啥r的随机森林只支持
: cardinality小于53的categorical feature。Python里的版本直接就是用的rank来替代
: 的。
: xgboost只支持数值变量,把这个问题丢给了用户去自己找合适的编码方案。
: word2vec是根据在意过语料集里单词上下文co-occurrance的频率来学习一个单次的分
: 布式表达或者向量表达,这个表达的euclidean distance保留一些语义上和语法上的相

m****o
发帖数: 182
10
word2vec除非你的inputs是有context的概念,一个 input前后跟着其它input,有
temporal dependency,才可能用上。binary encoding效果肯定不如1hot,但是是一个
好的starting point。feature engineering从来都是一个反复有反复的过程。但是一
切反复都要有个起点。

【在 g*******u 的大作中提到】
: binary 应该不适合tree 类型的分类器吧 。素以首先排除
: flamewalker 说的后面几个可能可以把?我想的就是根据分布 用直方图。这样就转化
: 为numerical的了。 吧所有很小的 都轨到一类
: 因为 5000多种 很多 直方图数值很小 直接用 我担心都接近0 可能会有问题 所以想
: 小于某个值的都归到 一个数值。
: wudong说的word2vec貌似比较高级? 听过没用过。 我可以看看 。 问一下,
: word2vec适合这种tree类型的 分类器吗?
: thx

1 (共1页)
进入Programming版参与讨论
相关主题
请教:如何用Java get URL content是.swe并且是utf-16 encoding的文件大家来看看这个纯Javascript实现的QR二维码生成器
编码问题求教, python 对于很奇怪的字符的encoding 怎么处理?
顺便问一个CreateFile问题 (转载)用react的试过中文么?
Google Chrome 里还是夹带了私货有没有做sentiment analysis的,求思路
想请教大牛们一个处理categorical variable in Machine Learning 的问题搜索引擎的克星是什么呢?
老生常谈,民科问应该如何处理分类(categorical)变量?如何把文字转换成机器可读形式?
data分类问题请教问个面试题目
怎么把 integer 转为 multi-byte integer format?a question about CGI
相关话题的讨论汇总
话题: encode话题: features话题: high