组合特征
为了能够使得组合特征避免出现参数过多,过拟合等问题,因此,我们需要找到有效的方法帮助我们进行特征的组合。 以预测问题举例。 输出特征有年龄,性别,购买物品类别,用户类型 组合特征可以如下,满足下面的条件为1,不满足则为0,特征为4维向量。
- 年龄
35且性别=女
- 年龄
35且物品类型=护肤
- 用户类型=付费且物品类别=食物
- 用户类型=付费且年龄
40
是否点击 | 年龄 | 性别 | 用户类型 | 物品类型 |
---|---|---|---|---|
是 | 28 | 女 | 免费 | 护肤 |
否 | 36 | 男 | 付费 | 食品 |
那么对应样本的特征可以分别为(1,1,0,0)和(0,0,1,1)
文本表示模型
文本是一类非常重要的非结构化数据,那么怎么在机器学习中表示需要输入的文本。
词袋模型
词袋模型是非常简单的表示文本的模型。把每篇文章,拆分出一个个地词语,忽略词语的顺序。把一段文本,看成一个长的向量,每一维代表一个词,值由词决定。一般使用TF-IDF来计算权重
其中TF(t,d)表示单纯t在文档d中出现的频率,IDF(t)是逆文档频率,用来衡量单词t对表达语义所起的重要性。
简单解释:如果一个词语在非常多的文章里面出现,那么它可能是一个比较通用的词语。 直接将文章的词语分割并不是一个很好的办法。因此有N-gram法,把连续的几个词语作为一个单独的特征方法哦向量中。
主题模型
从文本库发现具有代表性的主题,计算出每篇文章的主题分布。
词嵌入与深度学习模型
词嵌入的核心思想就是,将每个词语映射到低维空间上的一个稠密向量。略
Word2Vec
w2v是谷歌2013年提出了,目前最常用的词嵌入模型之一。w2c实际上是一种浅层的神经网络模型,它有两种网络结构,分别是CBOW和Skip-gram。
CBOW和Skip-gram
CBOW根据上下文出现的词语,预测当前词生成的概率。Skip-gram是根据当前词预测上下文中各词出现的概率。 如图
其中,w(t)是我们当前关注的词,w(t-2),...,w(t 2)是上下的词语。这里设置前后滑动窗口大小为2。 输入时,每个单词由独热编码表示,每个词表示成一个N维向量。N是词语的总数,在向量中,每个词语与之对应的维度设为1,其他为0。 映射层包含K个隐含单元。 输出层的向量则根据隐含层向量,连接隐含层和输出层之间的K×N维权重矩阵计算得到。输出层使用Softmax激活函数,可以计算出每个单词的生成概率。Softmax函数 代表N维原始输入向量,是在原始输入向量中与单词对应维度的取值。