文章目录
16.1 Feature Exploitation Techniques
在机器学习技法系列课程中,学习的第一个非常重要的模型是kernel 模型,kernel 模型要做的是将我们想要的特征转换(可能数量非常多)埋藏在一个kernel运算中,这样就可以包含特征转换和转换空间后的内积运算。
- Poly Kernel:包含多项式的运算,通过特别的缩放,使得其易于计算;
- Gaussian Kernel:具有无限多维度的特征转换;
- Stump Kernel:通过decision-stumps 做特征转换;
- Sum of Kernel:将不同的kernel相加,其意义是将不同的特征转换混合起来;
- Product of Kernel:将不同的kernel相乘,其意义是将不同的特征转换组合,形成一个更富在的特征转换;
- Mercer Kernel:所有的kernel都需要满足 Mercer’s condition,满足这个条件的函数,其中异地埋藏着一些或多或少的特征转换;
通过将以上的Kernel添加到不同的机器学习模型中,可以得到不同的算法模型,从而可以实现非常复杂的非线性运算:
- SVM
- SVR
- probabilistic SVM
- kernel ridge regression
- kernel logistic regression
- kernel PCA、kernel k-Means……
kernel 是进行特征转换的第一种方法,第二种方法是aggregation。其思想是将不同的假设函数 看作是特征转换,然后通过一些方式(投票,线性组合,条件组合)融合这些假设函数 得到功能更强大的 。
- Decision Stump:可以将其看做最简单的感知器(Perceptron),只能对输入空间做水平或竖直切分;也可以将其看做最简单的只有一个分支的决策树(DT);
- Decision Tree:标准的决策树做的是通过投票或者其它的方式对输入空间进行逐步切分,最后得到的树叶就是不同的假设函数 ,然后对这些 做融合得到 ;
- Gaussian RBF:也可以将径向基函数(RBF)看做一个假设函数 ,其输出是输入样本点到选择的代表性中心点的距离,来衡量相似性;
有了以上基本的假设函数 ,再结合三种组合方式(uniform、non-uniform、conditional),可以得到更复杂的算法:
-
Blending:如果已知不同的假设函数 ,可以对其做投票、做平均、做线性组合或者有条件的组合(线性或非线性),来得到最终的假设函数 ;
-
Bagging & Random Forest:如果假设函数 未知,则可以通过Bagging的方式得到不一样的 ,即使用bootstrapping从数据集中重采样的到子数据集,通过基本的演算法训练得到不同的假设函数 ;如果演算法选择决策树,最后通过Bagging投票的方式对这些 进行组合,就得到了随机森林算法(RF);
-
AdaBoost & GradientBoost:如果要一步一步地找出非常不一样的假设函数 ,然后再线性融合的话,可以尝试AdaBoost或者GradientAdaBoost算法;
-
Decision Tree & Nearest Neighbor:这两类算法是典型的通过有条件融合不同假设函数 的方法;在k近邻算法中,通过选择距离最近的几个假设函数来融合,距离的远近就是融合与否的判断条件;
-
probabilistic SVM:已知SVM,现在需要对其做微调,在SVM的方向上乘上某一个系数,实现平移,使得预测更接近期望值;可以看成基本的SVM模型与一个做平移的常数模型做线性融合;
-
Decision Tree SVM……
在本系列课程中,讲解的第三个模型是把一些潜藏(Hidden Features)的特征提取出来,其思路是在定义好模型之后不认为特征转换已经给定或者说已经埋藏在某个kernel中,而是将其作为一个要做最佳化的变量,然后结合权重一起做最佳化,通常结合无监督学习方法来做最佳化和特征提取。
- Neural Network:通过神经元的权重来做特征转换的典型方法;
- RBFNet:其中的RBF centers 代表了所要做的特征转换;常常使用无监督学习方法k-Means来寻找聚类中心;
- Matrix Factorization:矩阵分解中分解出的两个特征也相当于做特征转换;常常使用自动编码器(Autoencoder)和主成分分析(PCA)来找出比较好的投影方向。
- AdaBoost & GradientBoost:来求解假设函数中 的参数;
还有一种常常被忽略的特征转换方法,即将高维度的输入空间降维到低维度的输入空间的方法,相当于做压缩或投影。- Decision Stump:可以视为非常基础的投影动作,即在低维度空间对输入样本进行分割;
- Random Forest:在低维度空间中做随机的投影,可以看做非常基本的特征转换;
- Autoencoder & PCA:这两类算法目的是找到一些投影方向,可以把输入空间的特征保存的最好,在降维的同时又可以最大限度的保留特征;
- Matrix Factorization:将非常高维度的抽象向量投影到低维度的空间。
特征选择可以视为从低维度的投影空间中选择最有用的假设函数的过程。
习题1:
16.2 Error Optimization Techniques
本小节总结最优化算法,一个最基本的优化算法是梯度下降算法:如果有一个梯度的方向或者说能够大概地计算某个梯度的方向,就可以把这个方向当做误差函数的一次逼近,然后用这个逼近求解的结果,只要往负的梯度的方向走一小步即可。
- SGD/Minibatch GD/GD:使用这三种梯度下降优化算法的模型有 Kernel LogRegression,NN,Matrix Factorization,Linear SVM;
- Function GD:一般的梯度下降算法可以延伸到Function GD,即每次更新不再是一个向量,而是一个函数;常用的模型有 AdaBoost;
- Steepest Descent:更新的步长不再是一小步,而是步常最大的一步;常用的算法有AdaBoost。
清楚以上算法之后,可以做更多扩展,比如梯度下降是做一次逼近,可否改为二次逼近;或者对GD添加条件限制;从而得到不同的模型。在机器学习算法中还往往存在比较困难的最佳化问题,常用的解决方法是通过数学推导,将原来的问题变形为一个容易求解的问题。
- Dual SVM:转化为拉格朗日对偶是一种常用的算法,这样就可以通过二次规划(QP)求解;
- Kernel Log/RidgeRegression:通过 Representer Theory,可以得到一个等同的解,最后把这些解带进去,得到kernel的形式;
- PCA & Linear Autoencoder:转化为特征值问题进行求解,从而避免求解原来复杂的最佳化问题。
有些问题乍一看很复杂,可以将其拆解成比较容易求解的子问题进行求解,主要方式有以下三种:
第一种是多阶段的方式,第二种是交互迭代的方式,第三种是Divide和Conquer的方式。
习题2:
16.3 Overfitting Elimination Techniques
本小节介绍一下Overfitting Elimination Techniques:
以上技巧可以说是最重要的技术。此外还有一些简单但实用的技巧:
习题3:
16.4 Machine Learning in Action
本小节介绍了林轩田老师所在的团队在历年的KDD Cup中获得世界冠军的模型。
Feature engineering and classifier ensemble for KDD CUP 2010:
A two-stage ensemble of diverse models for advertisement ranking in KDD Cup 2012:
关键是正确融合而不过度拟合。
Combination of feature engineering and ranking models for paper-
author identification in KDD Cup 2013:
关键是利用领域知识来做特征工程。
ICDM 2006 Top 10 Data Mining Algorithms
-
ID3:ID3算法(Iterative Dichotomiser 3 迭代二叉树3代)是一个由Ross Quinlan发明的用于决策树的算法。这个算法是建立在奥卡姆剃刀的基础上:越是小型的决策树越优于大的决策树(简单理论)。尽管如此,该算法也不是总是生成最小的树形结构。而是一个启发式算法。
-
C4.5:是由Ross Quinlan开发的用于产生决策树的算法。该算法是对Ross Quinlan之前开发的ID3算法的一个扩展。C4.5算法产生的决策树可以被用作分类目的,因此该算法也可以用于统计分类。C4.5算法与ID3算法一样使用了信息熵的概念,并和ID3一样通过学习数据来建立决策树。[1]在Springer LNCS于2008年发表的优秀论文中,该算法在前10大数据挖掘算法中排名第一,之后使得它变得非常受欢迎。[2]
-
EM:最大期望算法(Expectation-maximization algorithm,又译期望最大化算法)在统计中被用于寻找,依赖于不可观察的隐性变量的概率模型中,参数的最大似然估计。在统计计算中,最大期望(EM)算法是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐变量。最大期望算法经常用在机器学习和计算机视觉的数据聚类(Data Clustering)领域。最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值。M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。
-
PageRank:又称网页排名、谷歌左侧排名、PR,是Google公司所使用的对其搜索引擎搜索结果中的网页进行排名的一种算法。PageRank本质上是一种以网页之间的超链接个数和质量作为主要因素粗略地分析网页的重要性的算法。其基本假设是:更重要的页面往往更多地被其他页面引用(或称其他页面中会更多地加入通向该页面的超链接)[1]。 其将从A页面到B页面的链接解释为“A页面给B页面投票”,并根据投票来源(甚至来源的来源,即链接到A页面的页面)和投票对象的等级来决定被投票页面的等级。简单的说,一个高等级的页面可以提升其他低等级的页面。该算法以谷歌公司创始人之一的拉里·佩奇(Larry Page)的名字来命名。[2]谷歌搜索引擎用它来分析网页的相关性和重要性,在搜索引擎优化中经常被用来作为评估网页优化的成效因素之一。目前,佩奇排名算法不再是谷歌公司用来给网页进行排名的唯一算法,但它是最早的,也是最著名的算法。[3][4]
-
Navie Beyes:在机器学习中,朴素贝叶斯分类器是一系列以假设特征之间强(朴素)独立下运用贝叶斯定理为基础的简单概率分类器。朴素贝叶斯自20世纪50年代已广泛研究。在20世纪60年代初就以另外一个名称引入到文本信息检索界中,[1]:488 并仍然是文本分类的一种热门(基准)方法,文本分类是以词频为特征判断文件所属类别或其他(如垃圾邮件、合法性、体育或政治等等)的问题。通过适当的预处理,它可以与这个领域更先进的方法(包括支持向量机)相竞争。[2] 它在自动医疗诊断中也有应用。[3]朴素贝叶斯分类器是高度可扩展的,因此需要数量与学习问题中的变量(特征/预测器)成线性关系的参数。最大似然训练可以通过评估一个封闭形式的表达式来完成,[1]:718 只需花费线性时间,而不需要其他很多类型的分类器所使用的费时的迭代逼近。
习题4:
Summary
Ref:
ID3:https://en.wikipedia.org/wiki/ID3_algorithm
C4.5:https://en.wikipedia.org/wiki/C4.5_algorithm
EM:https://en.wikipedia.org/wiki/Expectation–maximization_algorithm
Bayes:https://en.wikipedia.org/wiki/Naive_Bayes_classifier
Pagerank:https://en.wikipedia.org/wiki/PageRank