《百面机器学习》笔记-特征工程相关面试题2

2019-05-17 11:46:56 浏览数 (1)

1. 高维组合特征的处理

什么是组合特征?

将一阶离散特征两两组合,就可以构成二阶组合特征

例如,特征a有m个取值,特别b 有n个取值,将二者组合就有m*n个组成情况。这时需要学习的参数个数就是 m×n 个

如何处理高维组合特征?

问题:当每个特征都有千万级别,就无法学习 m×n 规模的参数了

解决方案:可以将每个特征分别用 k 维的低维向量表示,需要学习的参数变为 m×k n×k 个,等价于矩阵分解

应该对哪些特征进行组合?

可以用基于决策树的方法

  • 首先根据样本的数据和特征构造出一颗决策树。
  • 然后从根节点都叶节点的每一条路径,都可以当作一种组合方式。

例如,得到的一棵树有这样四条路径:

(1)“年龄<=30”且“性别=女”。 (2)“年龄<=30”且“物品类别=护肤品”。 (3)“用户类型=付费”且“物品类型=服饰”。 (4)“用户类型=付费”且“年龄<=50”。

那么新的一条样本数据,如果同时满足前两个路径,它的向量表示就是 (1,1,0,0)


2. 文本表示模型

词袋模型

即每篇文章用一个向量表示,向量的每个位置代表一个单词,每个位置的数值代表这个单词在文章中的权重,经常用 TF-IDF 。

这个向量就像是一个装满单词的袋子,因为它没有考虑单词的顺序。

词嵌入

将每个词都映射成低维空间(通常 K=50~300 维)上的稠密向量

Word2Vec

  • 有两种网络结构,CBOW 和 Skip-gram
  • CBOW :根据上下文词语来预测当前词的生成概率
  • Skip-gram :根据当前词来预测上下文中各词的生成概率
  • 两种改进方法:Hierarchical Softmax 和 Negative Sampling

Word2Vec 与 LDA 的区别和联系
  • LDA 对“文档-单词”矩阵进行分解,得到“文档-主题”和“主题-单词”两个概率分布。
  • Word2Vec Word2Vec 其实是对“上下文-单词”矩阵进行学习,得到的词向量提现了上下文的特征
主题模型和词嵌入两类方法的差异
  • 主题模型,基于“上下文-单词”矩阵进行主题推理 一种基于概率图模型的生成式模型,似然函数可以写成几个条件概率连乘的形式
  • 词嵌入方法,根据“文档-单词”矩阵学习出词的隐含向量表示 模型一般表达为神经网络的形式,似然函数定义在网络的输出之上 通过学习网络的权重,进而得到单词的向量表示

0 人点赞