类别特征处理与实体嵌入

常见的类别特征处理方法

  1. one-hot (太经典这里不再介绍)
  2. histgram 映射
  3. Entity Embeddings(实体嵌入)

histgram 映射

比如我们根据人们的一些身体特征来预测这个人会不会得糖尿病
其中有一个类别特征为男或者女,这时候我们如何对这个特征进行映射处理呢。

按照histgram 的处理方式,会按照预测的类别的占比来标注属性。也是假如有这样一个统计列表:

性别\是否得病 有糖尿病 无糖尿病
60 40
50 50

我们可以男:60/(60+40) = 0.6;女:50/(50+50) = 0.5。作为各自的特征。

Entity Embeddings

Embedding的起源和火爆都是在NLP中的,经典的word2vec都是在做word embedding这件事情,而真正首先在结构数据探索embedding的是在kaggle上的《Rossmann Store Sales》中的rank 3的解决方案,作者在比赛完后为此方法整理一篇论文放在了arXiv,文章名:《Entity Embeddings of Categorical Variables》。

其网络结构如下图所示:
类别特征处理与实体嵌入_第1张图片
结构非常简单,就是embedding层后面接上了两个全连接层,代码用keras写的,构建模型的代码量也非常少,用的keras的sequence model。

文章有几点分析比较值得关注的地方。

  1. 店铺所在地的嵌入向量在用TSNE投影到两维空间后和地图位置有着极大的相似性。
  2. 使用嵌入后的向量可以提高其他算法(KNN、随机森林、gdbt)的准确性。
  3. 作者探索了embedding和度量空间之间的联系,试图从数学层面深入探讨embedding的作用。

后边又有人在做了更复杂的网络在做 Entity Embeddings,如:《Artificial Neural Networks Applied to Taxi Destination Prediction》

你可能感兴趣的:(深度学习)