特征工程
一、特征归一化
线性函数归一化
零均值归一化
意义:未归一化的数据在梯度下降中需要较多的迭代才能找到最优解。
应用:通过梯度下降法求解的模型通常是需要归一化的,包括线性回归、逻辑回归、支持向量机、神经网络,但对于决策树模型则并不适用,决策树在进行节点分裂时主要依据数据集D关于特征x的信息增益比,而信息增益比跟特征是否经过归一化是无关的,因为归一化并不会改变样本在特征x上的信息增益。
二、类别型特征
序号编码
独热编码:使用稀疏向量,特征向量只有某一维取值为 1,其他位置取值均为0
二进制编码
高维度特征会带来的问题:
一是在K 近邻算法中,高维空间下两点之间的距离很难得到有效的衡量;
二是在逻辑回归 模型中,参数的数量会随着维度的增高而增加,容易引起过拟合问题;
三是通常只有部分维度是对分类、预测有帮助
三、文本表示模型
词袋模型:
是将整段文本以词为单位切分开,然后每篇文章可以表示成一个长向量,向量中的每一维代表一个单词,而该维对应的权重则反映了这个词在原文章中的重要程度,常用TF-IDF来计算权重。
公式:TF-IDF(t,d)=TF(t,d)×IDF(t)
(TF(t,d)为单词t在文档d中出现的频率,IDF(t)是逆文档频率,用来衡量单词t对 表达语义所起的重要性)
N-gram模型::将连续出现的n个词(n≤N)组成的词组(N-gram)也作为一个单独的特征放到向量表示中去
词干抽取处理:将不同词性的单词统一成为同一词干的形式
四、训练数据不足
1.一个模型所能提供的信息,一是训练数据中蕴含的信息;二是在模型的形成过程中人们提供的先验信息。训练数据不足时,就需要更多先验信息
先验信息可以作用在模型上,让模型采用特定的内在结构、条件假设;
先验信息也可以调整、变换或扩展训练数据,以利于后续模型的训练和学习。
2.图像分类任务训练数据不足带来的问题:过拟合
解决方案:
1.简化模型(将非线性模型简化为线性模型)、添加惩罚项
2.数据扩充:
(1)随机旋转、平移、缩放、裁剪、填充、左右翻转
(2)对像素添加噪声扰动,如椒盐噪声、高斯白噪声
(3)颜色变换
(4)改变亮度、清晰度、对比度、锐度
模型评估
1.准确率和召回率是既矛盾又统一的两个指标
应用:PR曲线
二、ROC曲线
1.ROC曲线的横坐标为假阳性率;纵坐标为真阳性率。P是真实的正样本的数量,N是真实的负样本的数量,TP是P个正样本中 被分类器预测为正样本的个数,FP是N个负样本中被分类器预测为正样本的个 数。
2.绘制ROC曲线的方法:假设正样本数量为P,负样本数量为N;接下来,把横轴的刻度间隔设置为1/N,纵轴的刻度间隔设置为1/P;再根据模型输出的预测概率对样本进行排序(从高到低);依次遍历样本,同时从零点开始绘制ROC曲线,每遇到一个正样本就沿纵轴方向绘制一个刻度间隔的曲线,每遇到一个负样本就沿横轴方 向绘制一个刻度间隔的曲线,直到遍历完所有样本,曲线最终停在(1,1)这个 点,整个ROC曲线绘制完成。
3.ROC积分面积越大,说明分类器越可能把真正的正样本排在前面,分类性能越好。
4.当正负样本的分布发生变化时,ROC曲线的形状 能够基本保持不变,而P-R曲线的形状一般会发生较剧烈的变化。
三、余弦距离的应用
1.定义:余弦相似度的取值范围是[−1,1],相同的两个向量之间的相似度为1。将1减去余弦相似度即为余弦距离。因此,余弦距离的取值范围为[0,2],相同的两个向量余弦距离为0。
向量的模长经过归一化后欧氏距离与余弦距离的关系:
2.欧氏距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异。
3.余弦距离满足正定性和对称性,但是不满足三角不等式,因此它并不是严格定义的距离。
KL距离(相对熵),常用于计算 两个分布之间的差异,但不满足对称性和三角不等式。
四、A/B测试的陷阱
1.进行A/B测试将用户分成实验组和对照组,对实验组施以新模型,对对照组施以旧模型。在分桶的过程中,要注意样本的独立性和采样方式的无偏性
2.需要进行在线A/B测试的原因:
离线评估无法完全消除过拟合
离线评估无法完全还原线上的工程环境,如延迟、数据丢失、标签数据缺失等
线上系统的某些商业指标在离线评估中无法计算
五、模型评估的方法
Holdout 检验:70% 的样本用于模型训练;30% 的样本用于模型验证
k-fold交叉验证:将全部样本划分成k个大小相等的样本子集;依次遍历这k个子集,每次把当前子集作为验证集,其余所有子集作为训练集,最后把k次评估指标的平均值作为最终的评估指标
留一验证:每次留下1个样本作为验证集,其余所有样本作为测试集。样本总数为n,依次对n个样本进行遍历,进行n次验证,再将评估指标求平均值得到最终的评估指标。样本总数较多时,时间开销极大(留p验证:每次留下p个样本作为验证集,而从n个元素中选择p个元素有 Cnp种可能,时间开销更高)
自助法: 总数为n的样本集合,进行n次有放回的随机抽样,得到大小为n的训练集。n次采样过程中,有的样本会被重复采样,有的样本没有被抽出过,将这些没有被抽出的样本作为验证集
在自助法的采样过程中,对n个样本进行n次自助抽样,当n趋于无穷大时, 大约有36.8%的样本从未被选择过,可作为验证集
六、超参数调优
网格搜索:查找搜索范围内的所有的点来确定最优值(采用较大的搜索范围以及较小的步长,十分消耗计算资源和时间;使用较广的搜索范围和较大的步长,由于目标函数一般是非凸的,所以很可能会错过全局最 优值)
随机搜索:在搜索范围中随机选取样本点(结果没法保证)
贝叶斯优化算法:根据先验分布,假设一个搜集函数;然后每一次使用新的采样点来测试目标函数时,利用这个信息来更新目标函数的先验分布;最后,算法测试由后验分布给出的全局最值最可能出现的位置的点。(一旦找到一个局部最优值,它会在该区域不断采样,很容易陷入局部最优值。为了弥补缺陷,贝叶斯优化算法会在探索和利用之间找到一个平衡点,“探索”就是在还未取样的区域获取采样点;而“利用”则是根据后验分布在最可能出现全局最值的区域进行采样。)
七、过拟合与欠拟合
1.降低“过拟合”风险:
获得更多的训练数据,如可以使用生成式对抗网络来合成大量的新训练数据
降低模型复杂度,如在神经网络模型中减少网络层数、神经元个数,在决策树模型中降低树的深度、进行剪枝
正则化方法,添加惩罚项
集成学习方法,把多个模型集成在一起,来降低单一模型的过拟合风险,如Bagging方法
2.降低“欠拟合”风险:
添加新特征,挖掘“上下文特征”“ID类特征”“组合特征”等,因子分解机、梯度提升决策树、Deep-crossing等都可以成为丰富特征的方法。
增加模型复杂度,如在线性模型中添加高次项,在神经网络模型中增加网络层数或神经元个数
减小正则化系数
经典算法
1.在空间上线性可分的两类点,分别向SVM分类的超平面上做投影,这些点在超平面上的投影是线性不可分的
2.一定存在一组参数使SVM训练误差为0(参数不一定是满足SVM条件的一个解),同时训练误差为0的SVM分类器一定存在
3.加入松弛变量(用SMO算法训练的)SVM不一定能得到训练误差为0的模型(正则化)
二、逻辑回归
1.多项逻辑回归具有参数冗余的特点,即将 同时 加减一个向量后预测结果不变
2.当存在样本可能属于多个标签的情况时,可以训练k个二分类的逻辑回归分类器。第i个分类器用以区分每个样本是否可以归为第i类,训练该分类器时,需要把标签重新整理为“第i类标签”与“非第i类标签”两类。
三、决策树
1.ID3—— 最大信息增益:
对于样本集合D,类别数为K,数据集D的经验熵表示为
其中Ck是样本集合D中属于第k类的样本子集,|Ck |表示该子集的元素个数,|D|表示样本集合的元素个数。
计算某个特征A对于数据集D的经验条件熵H(D|A)为
Di表示D中特征A取第i个值的样本子集,Dik表示Di中属于第k类的样本子集。
信息增益g(D,A)可以表示为二者之差,可得
2. C4.5——最大信息增益比:
特征A对于数据集D的信息增益比定义为
其中
3. CART——最大基尼指数(Gini):
Gini描述的是数据的纯度,与信息熵含义类似
特征A的Gini指数定义为
4. 信息增益反映的是给定条件以后不确定性减少的程度,特征取值越多就意味着确定性更高,也就是条件熵越小,信息增益越大。(缺陷举例:特征“DNA”,泛化能力非常弱)。C4.5是对ID3进行优化,通过引入信息增益比,一定程度上对取值比较多的特征进行惩罚,避免ID3出现过拟合的特性,提升决策树的泛化能力。
5.ID3只能处理离散型变量,而C4.5和CART都可以 处理连续型变量
6. ID3和C4.5只能用于分类任务,而CART可以用于分类和回归
7.预剪枝:
(1)当树到达一定深度的时候,停止树的生长。
(2)当到达当前结点的样本数量小于某个阈值的时候,停止树的生长。
(3)计算每次分裂对测试集的准确度提升,当小于某个阈值的时候,不再继续扩展。
8. 后剪枝:
代价复杂剪枝CCP:
从T0开始,裁剪Ti中关于训练数据集合误差增加最小的分支以得到Ti+1。具体地,当一棵树T在结点t处剪枝时,它的误差增加可以用R(t)−R(Tt )表示,其中R(t)表示进行剪枝之后的该结点误差,R(Tt )表示未进行剪枝时子树Tt的误差。我们用|L(Tt )|表示子树Tt的叶子结点个数,则树在结 点t处剪枝后的误差增加率为
9. 奥卡姆剃刀定律:即“简单有效原理”。 “当两个假说具有完全相同的解释力和预测力时,我们以那个较为简单的假说作为讨论依据”。
降维
一、PCA最大方差理论
PCA的目标,即最大化投影方差,也就是让数据在主轴上投影的方差最大。向量xi在ω(单位方 向向量)上的投影坐标可以表示为 投影后的 方差可以表示为x投影后的方差就是协方差矩阵的特征值。我们要找到最大的方差也就是协方差矩阵最大的特征值,最佳投影方向就是最大特征值所对应的特征向量。次佳投影方向位于最佳投影方向的正交空间 中,是第二大特征值对应的特征向量,以此类推
PCA 的求解方法:
(1)对样本数据进行中心化处理。
(2)求样本协方差矩阵。
(3)对协方差矩阵进行特征值分解,将特征值从大到小排列。
(4)取特征值前d大对应的特征向量ω1 ,ω2 ,...,ωd,通过以下映射将n维样本映射到d维
新的xi ‘的第d维就是xi在第d个主成分ωd方向上的投影,通过选取最大的d个特征值对应的特征向量,我们将方差较小的特征(噪声)抛弃,使得每个n维列向量 xi被映射为d维列向量xi ′,定义降维后的信息占比为
二、PCA最小平方误差理论
在高维空间中,我们实际上是要找到一个d维超平面,使得数 据点到这个超平面的距离平方和最小,数据集中每个点xk到d维超平面D的距离为
实际上就是xk在W这组标准正交 基下的坐标。而PCA要优化的目标为
三、线性判别分析
Fisher LDA相比PCA更善于对有类别信息的数据进行降维处理,LDA的中心思想——最大化类间距离和最小化类内距离。
对于二分类,只需要求样本的均值和类内方差,就可以马上得出最佳的投影方向ω。这便是Fisher在1936年提出的线性判别分析
四、线性判别分析与主成分分析
具有多个类别标签高维数据的LDA求解方法:
(1)计算数据集中每个类别样本的均值向量μj,及总体均值向量μ。
(2)计算类内散度矩阵Sw,全局散度矩阵St,并得到类间散度矩阵 。
(4)取特征值前d大的对应的特征向量 通过以下映射将n维样本映射到d维
对无监督的任务使用PCA 进行降维,对有监督的则应用LDA
非监督学习
1.K均值聚类的核心目标是将给定的数据集划分成K个簇,并给出每个数据对应的簇中心点。算法的具体步骤描述如下:
(1)数据预处理,如归一化、离群点处理等。
(4)令t=0,1,2,… 为迭代步数,重复下面过程直到 J 收敛:
2.K均值算法有一些缺点,例如受初值和离群点的影响每次的结果不稳定、结果通常不是全局最优而是局部最优解,无法很好地解决数据簇分布差别比较大的情况(比如一类是另一类样本数量的100倍)、不太适用于离散分类等
3.K均值算法的调优:
(1)数据归一化和离群点处理。
(2)合理选择K值。(手肘法、Gap Statistic方法 )
(3)采用核函数,通过一个非线性映射,将输入空间中的数据点映射到高位的特征空间中
4. K均值算法改进模型:
K-means++算法:假设已经选取了n个初始聚类中心(0 ISODATA算法:当属于某个类别的样本数过少时,把该类别去除;当属于某个类别的样 本数过多、分散程度较大时,把该类别分为两个子类别 ISODATA算法的输入参数: (1)预期的聚类中心数目K(最终输出的聚类中心数目常见范围是从Ko的一半,到两倍Ko) (2)每个类所要求的最少样本数目Nmin。 (3)最大方差Sigma (4)两个聚类中心之间所允许最小距离Dmin。 5. K均值聚类的迭代算法实际上是一种最大期望算法 (EM算法),EM算法由以下两个步骤交替进行直到收敛 等同于在K均值算法中对于每一个点x (i)找到当前最近的簇z (i)。 等同于找到最优的中心点 ,使得损失函数 达到最小,此时每个样本x (i)对应的簇z (i)已确定,因此每个簇k对应的最优中心点μk可以由该簇中所有点的平均计算得到 二、高斯混合模型 1.高斯混合模型的核心思想是:假设数据可以看作从多个高斯分布中生成出来的。在该假设下,每个单独的分模型都是标准高斯模型,其均值μi和方差Σi是待估 计的参数。此外,每个分模型都还有一个参数πi,可以理解为权重或生成数据的概率。 2. EM算法的迭代过程如下:首先,初始随机选择各参数的值。然后,重复下述两步,直到收敛。 (1)E步骤。根据当前的参数,计算每个点由某个分模型生成的概率。 (2)M步骤。使用E步骤估计出的概率,来改进每个分模型的均值,方差和权重。 3. 高斯混合模型与K均值算法的相同点: 都可用于聚类;都需要指定K值;都使用EM算法来求解;都往往只能收敛于局部最优 三、自组织映射神经网络 自组织映射神经网络本质上是一个两层的神经网络,包含输入层和输出层 (竞争层),输出层中神经元的个数通常是聚类的个数,代表每一个需要聚成的类。 训练时采用“竞争学习”的方式,每个输入的样例在输出层中找到一个和它最匹配 的节点,称为激活节点,(winning neuron);紧接着用随机梯度下降法更新激活节点的参数;同时,和激活节点临近的点也根据它们距离激活节点的远近而适当地更新参数。 获胜的神经元将使得相关的各权重向更加有利于它竞争的方向调整,以获胜神经元为中心,对近邻的神经元表现出兴奋性侧反馈,而对远邻的神经元表现出抑制性侧反馈,近邻者互相激励,远邻者相互抑制。近邻和远邻均有一定的范围,对更远邻的神经元则表现弱激励的作用。这种 交互作用的方式以曲线可视化则类似于“墨西哥帽” 自组织映射神经网络与K均值算法的区别: 四、聚类算法的评估 1.常见的数据簇: 以中心定义的数据簇(这类数据集合倾向于球形分布) 以密度定义的数据簇(或稠密或稀疏,数据簇不规则或互相盘绕,并且有噪声和离群点) 以连通定义的数据簇(数据点和数据点之间有连接关系, 整个数据簇表现为图结构) 以概念定义的数据簇(这类数据集合中的所有数据点具有某种共同性质) 2. 聚类评估的三个子任务: (1)估计聚类趋势 如果样本接近随机分布,那H的值接近于 0.5;如果聚类趋势明显,则随机生成的样本点距离应该远大于实际样本点的距离,即 H的值接近于1。 (2)判定数据簇数 手肘法和Gap Statistic方法 (3)测定聚类质量 改进的HubertΓ统计:Γ值越大说明聚类的结果与样本的原始距离越吻合,也就是聚类质量越高 概率图模型 马尔可夫网络联合概率分布 其中C为图中最大团所构成的集合, 为归一化因子,用来保证P(x)是 被正确定义的概率,φQ是与团Q对应的势函数. 如果在一个子集中,任意两点之间都存在边相连,则这个子集中的所有节点构成了一个团。如果在这个子集中加入任意其他节点,都不能构成一个团,则称这样的子集构成了一个最大团。 二、概率图表示 其中 x=(x1 ,x2 ,...,xn )为样本对应的特征向量,假设特征x1 ,x2 ,...,xn相互独立,可以得到 其中P(x1 |yi ),P(x2 |yi ),...,P(xn |yi ),以及P(yi )可以通过训练样本统计得到,可以看到后验概率P(xj |yi )的取值决定了分类的结果 2. 最大熵模型: 离散随机变量x的分布P(x)的熵定义为 当x服从均匀分布时对应的熵最大 给定离散随机变量x和y上的条件概率分布P(y|x),定义在条件概率分布上的条件熵为 给定训练数据集 ,以及M个特征函数 三、生成式模型与判别式模型 假设可观测到的变量集合为X,需要预测的变量集合为Y,其他的变量集合为Z 朴素贝叶斯、贝叶斯网络、pLSA、LDA、隐马尔可夫模型等模型都属于生成式模型; 最大熵模型、条件随机场属于判别式模型 四、马尔可夫模型 1.马尔可夫过程: 是满足无后效性的随机过程。假设一个随机过程中,tn时刻的状态xn的条件分布,仅仅 与其前一个状态xn−1有关,即P(xn |x1 ,x2…xn−1 )=P(xn |xn−1 ) 2.在隐马尔可夫模型中,参数包括了隐状态间的转移概率、隐状态到观测状态的输出概率、 隐状态x的取值空间、观测状态y的取值空间以及初始状态的概率分布。 3. 隐马尔可夫模型三个基本问题 (1)概率计算问题:已知模型的所有参数,计算观测序列Y出现的概率,可使用前向和后向算法求解。 (2)预测问题:已知模型所有参数和观测序列Y,计算最可能的隐状态序列X,可使用经典的动态规划算法——维特比算法来求解最可能的状态序列。 (3)学习问题:已知观测序列Y,求解使得该观测序列概率最大的模型参数,包括隐状态序列、隐状态之间的转移概率分布以及从隐状态到观测状态的概率分布,可使用Baum-Welch算法进行参数的学习。 4. 最大熵马尔可夫模型 其中 由于局部归一化的影响,隐状态会倾向于转移到那些后续状态可能更少的状态上,以提高整体的后验概率。 这就是标注偏置问题。 5. 条件随机场 其中归一化因子Z(y1…n )是在全局范围进行归一化,枚举了整个隐状态序列x1…n的全部可能,从而解决了局部归一化带来的标注偏置问题。 五、主题模型 1.常见的主题模型:pLSA、LDA 其中M为文档的总数,wd为文档d中单词所组成的词袋向量,p(wd )为模型所预测的文档d的生成概率,Nd为文档d中单词的总数。 3. 冷启动问题 用户冷启动:对一个之前没有行为或行为极少的新用户进行推荐; 物品冷启动:为一个新上市的商品或电影(这时没有与之相关的评分或用户行为数据)寻找到具有潜在兴趣的用户; 系统冷启动:为一个新开发的网站设计个性化推荐系统 优化算法 1.对二分类问题: 0-1损失: 非凸、非光滑,很难直接对该函数进行优化 Hinge损失函数: 在fy=1处不可导,因此不能用梯度下降法进行优化 Logistic损失函数: 对所有的样本点都有所惩罚,因此对异常值相对更敏感一些 2. 对回归问题: 平方损失函数: 是光滑函数,能够用梯度下降法进行优化。预测值距离真实值越远时,平方损失函数的惩罚力度越大,因此对异常点比较敏感 绝对损失函数: 相当于是在做中值回归,相比做均值回归的平方损失函数,绝对损失函数对异常点更鲁棒一些。但是在f=y处无法求导数 Huber损失函数: 在|f−y|较小时为平方损失,在|f−y|较大时为线性损失,处处可导, 且对异常点鲁棒 二、机器学习中的优化问题 1.函数L(·) 是凸函数当且仅当对定义域中的任意两点x,y和任意实数λ∈[0,1]总有 2.逻辑回归对应的优化问题就是凸优化问题 可以通过计算目标函数的二阶Hessian矩阵来验证凸性 该矩阵满足半正定的性质,因此函数L(·)为凸函数。对于凸优化问题,所有的局部极小值都是全局极小值 其他凸优化问题的例子包括支持向量机、线性回归 3. 主成分分析对应的优化问题是非凸优化问题 令X=[x1 ,...,xn ] 为数据中心化后构成的矩阵,主成分分析的优化问题为 令V为优化问题的 全局极小值,则− V也是该问题的全局极小值,且有 一般来说,非凸优化问题被认为是比较难求解的问题,但主成分分析是一个特例,我们可以借助SVD直接得到主成分分析的全局极小值。 其他非凸优化问题的例子包括低秩模型(如矩阵分解)、深度神经网络模型 三、经典优化算法 经典优化算法分为直接法和迭代法两大类 直接法要求目标函数需要满足两个条件。第一个条件是L(·)是凸函数。若L(·)是凸函数,那么θ是最优解的充分必要条 件是L(·)在θ处的梯度为0。第二个条件是,上式有闭式解。 经典例子是岭回归(Ridge Regression),其目标函数为 迭代法又可以分为一阶法和二阶法 一阶法对函数 做一阶泰勒展开,由于该近似式仅在δ较小时才比较准确,因此在求解δt时一般加上L2正则项。 一阶法的迭代公式表示为 其中α称为学习率。一阶法也称梯度下降法。 二阶法对函数L(θt +δ)做二阶泰勒展开,通过求解近似优化问题 二阶法也称为牛顿法,Hessian矩阵就是目标函数的二阶信息。二阶法的收敛速度一般要远快于一阶法,但是在高维情况下,Hessian矩阵求逆的计算复杂度很大,而且当目标函数非凸时,二阶法有可能会收敛到鞍点(Saddle Point) 四、梯度验证 1.对任意的i=1,2,…,n,目标函数梯度的第i个元素的定义为 根据泰勒展开及拉格朗日余项公式可得 当h充分小时,pi和qi都很接近0,可以近似认为h 2项前面的系数是常数M,因此近似式的误差为 由此可知,当h较小时,h每减小为原来的10−1,近似误差约减小为原来的10−2,即近似误差是h的高阶无穷小 2.在实际应用中,我们随机初始化θ,取h为较小的数(例如10−7),并对 i=1,2,...,n,依次验证 如果对于某个下标i,该不等式不成立,则有以下两种可能 (1)该下标对应的M过大。 (2)该梯度分量计算不正确。 此时可以固定θ,减小h为原来的10−1,并再次计算下标i对应的近似误差,若近似误差约减小为原来的10−2,则对应于第一种可能,我们应该采用更小的h重新做一次梯度验证;否则对应于第二种可能,我们应该检查求梯度的代码是否有错误。 五、随机梯度下降法 1.经典的梯度下降法采用所有训练数据的平均损失来近似目标函数 因此,在每次对模型参数进行更新时,需要遍历所有的训练数据。当M很大时,这需要很大的计算量 2.随机梯度下降法(SGD)用单个训练样本的损失来近似平均损失 大大加快了收敛速率,该方法也非常适用于数据源源不断到来的在线更新场景 3.小批量梯度下降法(Mini-Batch Gradient Descent)需要同时处理m个训练数据 , 六、随机梯度下降法的加速 随机梯度下降法每步仅仅随机采样一个(或少量)样本来估计当前梯度,计算速度快,内存开销小。但由于每步接受的信息量有限,随机梯度下降法对梯度的估计常常出现偏差,造成目标函 数曲线收敛得很不稳定,伴有剧烈波动,有时甚至出现不收敛的情况 七、L1正则化与稀疏性 L2正则化相当于为参数定义了一个圆形的解空间,而L1正则化相当于为参数定义了 一个棱形的解空间。 L1正则化相当 于对模型参数w引入了拉普拉斯先验,L2正则化相当于引入了高斯先验,而拉普拉斯先验使参数为0的可能性更大。