目录
第一章 特征工程
特征工程:对原始数据进行一系列工程处理,将其提炼为特征。作为输入给算法和模型使用。本质上,特征工程是一个表示和展现数据的过程。特征工程旨在去除原始数据中的杂志。
结构化数据:类似于数据库中的一个表,每一个行列都有清晰的定义,包含数值型与类别型两种类型。
非结构数据:主要是文本、图像、音频、视频数据。其包含的信息无法进行简单的数值表示,也没有类别定义。无法规范化表示
特征归一化:是为了消除数据特征之间的量纲影响,使得不同的指标之间可以具有对比性
特征归一化针对的是数值类型的特征。
第一个是线性函数的归一化。它对原始数据进行线性变换使得结果过映射到[0,1],实现对原始数据的等比缩放。
第二个是零均值的归一化。它将会把原始数据映射到值为0、标准差为1的分布上。
类别型特征:指在有限选项内取值的特征,类别型特征原始输入通常是字符串形式,除了决策树等少数模型能直接处理字符串的输入。对于逻辑回归,支持向量机模型来说,类别型特征需要转变成数值型特征才可以有效。
对于类别型数据的处理,主要有三种方式:序号编码通常用于处理类别之间具有大小关系的数据。比如成绩高、中、低划分为0 、1、2。独热编码通常用于处理不具有大小关系的特征。如血型A、AB、O、B。独热编码将其变成四维稀疏向量。
此类编码有两方面要注意,第一个是稀疏向量节省空间。第二个是配合特征选择来降低维度。
高纬度带来的负面影响是在K近邻算法中点与点之间的举例判断难以得到有效的衡量。其次是逻辑回归模型中,参数的数量会随着维度的增高而变多,容易引起过拟合的问题。最后是只有部分维度是对分类与预测是有帮助的。所以需要用到降维处理。
二进制编码主要是分为两步,先用序号编码对每一个类别赋予一个类别的ID,然后将类别ID对应的二进制作为结果。本质上是利用二进制对ID进行哈希映射,最终得到0/1特征向量,且维数少于独热编码节省了存储空间。
组合特征:为了提高复杂关系的拟合能力,在特征工程经常把一阶离散特征两两组合,构成高阶组合特征。
文本表示模型
文本是种非结构化的数据
词袋模型:将每一篇文章看成一袋子词语,并且忽视每个词出现的顺序,具体来说,是将整段文本以词为单位切分开,然后将每一篇文章表示成为一个长向量, 向量中的每一个维度代表一个单词。而该维对应的权重则反映了这个词在原文章中的重要程度。
常用TFIDF来计算权重
此外还有个N-gram模型,将连续出现的N个词组成的词组作为一个单独的特征放到向量表示中去。构成N-gram中。此外,一个词可能会有多种词形变化,实际应用中还涉及到词干的抽取。
主题模型
用于从文本库中发现有代表性的主题,(得到每个主题上面词的分布特性)并且能够计算每篇文章的主题分布。
词嵌入与深度学习模型
词嵌入是一类将词向量化模型的统称,核心思想是将每个词都映射到低维空间(通常K = 50-300维度)上的一个稠密向量,K维空间的每一维也可以看做一个隐含的主题,只不过不像主题模型中的主题那样直观。