1、线性模型
线性模型是机器学习最基本的算法类型,它试图学到一个通过多个特征(属性)计算的线性组合来预测的函数,简单的线性回归形式如y=ax+b,其中,x代表特征,而y代表结果,一旦a和b的值能到确定,模型即得以确定,此时若输入新的x就可以推算新的y。如果变量仅有一个,则称为一元线性回归,若存在超过一个的自变量,即将x、y、a、b均扩展为向量,则称为多元线性回归。
使用线性回归能够预测数据趋势,还可以处理分类问题。除线性回归外,经典的线性模型中还包括逻辑回归,逻辑回归可以视为广义的线性回归,其表现形式与线性回归相似,但使用逻辑函数将ax+b映射为一个隐状态,再根据隐状态的大小计算模型取值,其损失函数是最小化负的似然函数。
线性模型的缺点是难以预测复杂的行为,并容易出现过拟合。
2、 决策树
决策树是另一类常见的机器学习方法,其模型是一个树型结构(见图8-3),也可看作有向无环图,其中树的节点表示某个特征,而分叉路径代表不同的判断条件,数据将从根节点行进到叶节点,依据特征进行判断,最终在叶节点得到预测结果。常见的决策树算法有ID3、C4.5和CART等,其区别主要在于依据什么指标来指导节点的分裂。例如,ID3以增熵原理来确定分裂的方式,C4.5在ID3基础上定义了信息增益率,避免分割太细导致的过拟合,而CART使用的则是类似熵的基尼指数。
与线性模型类似,决策树也包括分类树和回归树,其优势是易于理解、实现,也易于评测,但缺点是训练最优的决策树可以被证明为完全NP问题,因此只能使用启发式算法,并且容易过拟合,通过对特征的选择、对数据的选择和对模型的剪枝能够缓解。此外,决策树的平衡也十分脆弱,较小的数据变化训练出的树结构可能大为不同,这时可以通过随机森林等方法解决。
3、随机森林
随机森林(Random Forest)是集成算法的一种,其主要概念是将多种训练出的模型集成在一起,将一些较弱的算法通过集成提升成为较强的算法,泛化能力通常比单一算法显著地优越。随机森林本身是一个包含多个决策树的分类器,其输出类别由个别树输出的类别决定,其多样性来自数据样本和特征的双重扰动。
与随机森林代表的Bagging方法(均匀取样)有所区别,Boosting方法意图根据错误率进行取样,对分类错误的样本赋予较大权重,可以看作集成算法不同的思路。此外,Bagging方法的训练集可以相互独立,接受弱分类器并行,而Boosting方法的训练集选择与前一轮的训练结果相关,可以视作串行,其结果往往在精度上更好,但难以并行训练。
Boosting方法的代表算法是GBDT(Gradient Boost DecisionTree,梯度提升决策树),这里GBDT学习的实际是之前所有树得到结论的残差。GBDT可以处理离散和连续的数据,几乎可以用于所有的回归问题和分类问题,常见的Xgboost库可以被看作遵循Boosting思想决策树的优化工程实现,除CART树外,它还支持线性分类器作为基分类器,增加了损失函数中的正则项以防止过拟合,在每一轮学习后会进行缩减等。
4、贝叶斯
贝叶斯分类器是另一种常见的构造分类器的方法,追求分类错误最小或平均风险最小,其原理是通过某个对象的先验概率,假设每个特征与其他特征都不相关,利用贝叶斯公式算出其属于某一 类的概率,选择具有最大可能性的类别。
5、支持向量机
在不对问题做任何假定的情况下,并不存在一种"最优"的分类方法,如果说在特征数量有限的情况下,GBDT和Xgboost应当是首选尝试方案的话,支持向量机(即Support Vector Machine,SVM)则是另一项利器,适于解决样本数量少、特征众多的非线性问题。由于期望区分的集合在有限维空间内可能线性不可分,SVM算法通过选择合适的核函数定义映射(从原始特征映射到高维特征空间),在高维或无限维空间构造一个超平面,令其中分类边界距离训练数据点越远越好,以此进行分类和回归分析。
6、K近邻算法
与上述的算法不太一样,K近邻算法是一延迟分类算法,即其几乎没有训练过程,相反主要的计算发生在预测过程。K近邻算法的原理是在给定数据中,基于距离找出训练集中与其距离最近的K个样本,基于其信息使用投票法或均值计算进行预测,距离可用于计算的权重。由于训练数据的密度并非总能保证在一定距离范围内找到近邻样本,可以采取降维的方法,即将高维的特征空间转换为低维,常见的方法包括主成分分析、线性判别分析、拉普拉斯映射等,而降维亦可通过度量学习的方法习得。
不论是线性模型,还是SVM,K近邻,又或是决策树、随机森林、GBDT,均需要通过输入数据和输出数据的对应关系生成函数,属于监督学习的一种。
7、聚类
聚类是无监督学习的典型算法类型之一,聚类算法意图将数据集中的样本划分为若干集合,然而不同集合的概念并非预先设定,相反,属于同一集合的样本其特征取决于样本之间的相似性,也即距离长短,集合的特征可由使用者命名。常用的聚类算法有K-Means算法、高斯混合聚类等,其既可以用于直接解决分类问题,也可作为其他任务的前置任务。
机器学习依赖数据和特征,选择合适的特征将会对学习过程有重要影响,尤其是帮助降低对高维度数据的处理难度,特征选择的思路主要包括在训练前对数据集进行特征选择,将模型性能直接作为特征子集评价标准,融合特征选择与学习过程等几类。
8、概率图模型
概率图模型是用图来表示变量概率依赖关系的方法,一幅概率图由节点和边构成,节点表示随机变量,边表示变量之间的概率关系。它们又可以被分为两类:一类是有向图模型,即节点之间的边包含箭头,指示随机变量之间的因果关系;另一类是无向图模型,节点之间不存在方向,常用于表示随机变量之间的约束。常见的概率图模型包括马尔科夫场、隐马尔科夫模型、条件随机场、学习推断、近似推断、话题模型等。图模型的主要好处是利于快速直观地建立描述复杂实际问题的模型,从数据中发掘隐含的信息,并通过推理得出结论。
9、强化学习
强化学习是机器学习中另一较大的分支方向,不同于前文所处理的分类、回归、聚类等问题,强调基于反馈采取行动,以取得最 大化的预期回报,即建立一个主体通过行为获得的奖励或惩罚,修正对行动后果的预期,得到可以产生最大回报的行为模型。
与一般的监督学习的模式不同,强化学习的反馈常常需要延迟获得,也即在多个步骤的行动之后才能获取到奖惩结果,其重要之处在于探索未曾尝试的行动和从已执行的行动中获取信息。可以想见,其适应的数据也将是序列化、交互性、带有反馈信息的。考虑行动的模型可以马尔科夫决策过程(Markov DecisionProcess,MDP)的描述,即系统的下个状态不仅与当前状态相关,亦与当前采取的行动相关,需要定义初始状态、动作集合、状态转移概率和回报函数。由于立即回报函数难以说明策略的好坏,还需要定义值函数表明某一策略的长期影响,而求取MDP的最优策略,也即求取在任意初始条件下,能够最大化值函数的策略,对应的方法有动态规划法、蒙特卡罗法、时间差分法(结合动态规划和蒙特卡罗法的方法,如Sarsa或Q-Learning算法)等。