基础
监督学习经典模型
- 监督学习任务的基本架构和流程:
1.准备训练数据;
2.抽取所需特征,形成用于训练特征向量(Feature Vectors);
3.训练预测模型(Predictive Model);
4.抽取测试数据特征,得到用于测试的特征向量;
5.使用预测模型对待测试特征向量进行预测并得到结果(Label/Target)。 - 分类学习
1.二分类(Binary Classification)
是与非,从两个类别中选择一个作为预测结果;
2.多类分类(Multiclass Classification)
在多于两个类别中选择一个;
3.多标签分类问题(Multi-label Classification)
判断一个样本是否同时属于多个不同类别。 - 线性分类器(Linear Classifier)
一种假设特征与分类结果存在线性关系的模型,此模型通过累加计算每个维度的特征与各自权重的乘积来帮助类别决策。
特点:
作为最基本常用的机器学习模型,尽管线性分类器受限于数据特征和分类目标之间的线性假设,但仍可在科研和工程实践中将其表现性能作为基准。
LogisticRegression对参数计算采用精确解析(Normal Equation)的方式,计算时间长(复杂度O(n^3)),但模型性能略高;
SGDClassifier(梯度法)采用随机梯度上升算法估计模型参数,计算时间短但模型性能略低。(10万量级以上数据更实用) - 支持向量机分类器(Support Vector Classifier)
根据训练样本的分布,搜索所有可能的线性分类器中最佳的那个。
训练样本中,空间间隔最小的不同类别的数据点可以用来帮助决策最优线性分类模型,将这种数据点叫做“支持向量”。
而LogisticRegression模型在训练中考虑了所有训练样本对参数的影响,未必能获得最佳的分类器。
特点:
支持向量机精妙的模型假设可以在海量甚至高维度的数据中,筛选对预测任务最为有效的少数训练样本。这样不仅节省了模型学习所需的数据内存,同时也提高了其预测性能。 - 朴素贝叶斯分类器(Naive Bayes)
与基于线性假设的模型不同,朴素贝叶斯分类器的构造基础是贝叶斯理论。
它会单独考量每一维度特征被分类的条件概率,进而综合这些概率并对其所在的特征向量做出分类预测。故此模型的基本数学假设是:各个维度上的特征被分类的条件概率之间是相互独立的。
特点:
朴素贝叶斯模型被广泛应用于海量互联网文本分类任务。由于其较强的特征条件独立假设,使得模型预测所需要估计的参数规模从幂指数量级向线性量级减少,极大地节约了内存消耗与计算时间。但是,也正是受这种强假设的限制,模型训练时无法将各个特征之间的联系考量在内,使得该模型在其他数据特征关联性较强的分类任务上表现不佳。 - K近邻分类(K-Nearest Neighbor)
K近邻寻找与待分类的样本在特征空间中距离最近的K个已标记的样本作为参考,以便做出分类决策。
注意:K不属于模型通过训练数据学习的参数。
特点:
K近邻算法与其他模型最大的不同在于:该模型没有参数训练过程。即,并没有通过任何学习算法分析训练数据,而只是根据测试样本在训练数据的分布直接做出分类决策。因此,K近邻属于无参数模型中非常简单的一种。其计算复杂度与内存消耗非常高(因为每次都要遍历所有数据点)。 - 决策树分类(Decision Tree)
被学习的数据特征和目标之间存在非线性关系时,决策树是不二之选。
决策树的节点(node)代表数据特征,每个节点下的分支代表对应特征值的分类,所有叶子节点(leaf)则显示模型的决策结果。
在使用多种不同特征组合搭建多层决策树时,模型学习就需要考虑特征节点的选取顺序。常用的度量方式包括信息熵(Information Gain)和基尼不纯性(Gini Impurity)。
特点:
相比其他学习模型,决策树在模型描述上有着巨大优势。决策树的推断逻辑也非常直观,具有清晰的可解释性,方便了模型的可视化。 - 集成模型分类(Ensemble)
集成分类模型综合考量多个分类器的预测结果,从而作出决策。
分为两种:
1.利用相同的训练数据同时搭建多个独立的分类模型,然后通过投票的方式,以少数服从多数的原则做出最终的分类决策。
比较有代表性的模型:随机森林分类器(Random Forest Classifier),在相同的训练数据上同时搭建多棵决策树。
2.按照一定次序搭建多个分类模型,这些模型之间彼此存在依赖关系。
比较有代表性的模型:梯度提升决策树(Gradient Tree Boosting),这里每一棵决策树在生成的过程中都会尽可能降低整体集成模型在训练集上的拟合误差。
特点:
相比于其他单一的学习模型,集成模型可以整合多种模型,或者多次就一种类型的模型进行建模。虽然在训练过程中要耗费更多的时间,但得到的综合模型往往性能及稳定性更佳。 - 回归预测
与分类问题的区别:
回归待预测的目标是连续变量。 - 线性回归器
线性模型的计算结果是实数,分类任务中为将其映射到(0,1)区间,引入了logistic函数。在回归问题中则无需此步骤,优化目标就是最小化预测结果与真实值之间的差异。
同样,为了学习到决定模型的参数,即系数w及截距b,仍然可以使用两种方法:
1.精确计算的解析算法(Normal Equation);
2.快速的随机梯度下降(Gradient Descent)。 - 支持向量机回归
支持向量机回归与分类类似,仍然是从训练数据中选取一部分更加有效的支持向量,区别在于这少部分的训练样本所提供的并不是类别目标,而是具体的预测数值。
而且,支持向量机回归还可以通过配置不同的核函数来改变模型性能。
核函数是一项特征映射技巧,简单地说,它是通过某种函数计算,将原有的特征映射到更高维度的空间,从而可以尽可能达到新的高维度特征线性可分的程度。 - K近邻回归
用于回归任务时,K近邻有不同衡量待测样本的方式:
1.对K个近邻目标数值进行普通的算术平均;
2.同时考虑距离的差异进行加权平均。 - 回归树
回归树叶结点的数据类型是连续型,即一个个具体的值。 - 集成模型回归
除普通的随机森林和提升树模型回归器外,还有一个例子是随机森林模型的变种:
极端随机森林(Extremely Randomized Trees),
与普通的随机森林模型不同的是,极端随机森林在每当构建一棵树的分裂节点的时候,不会任意地选取特征;而是先随机收集一部分特征,然后利用信息熵和基尼不纯性等指标挑选最佳的节点特征。
无监督学习经典模型
- 无监督学习(Unsupervised Learning)着重于发现数据本身的分布特征。
与监督学习不同,无监督学习不需要对数据进行标记,这意味着节约了大量人工且可利用的数据规模也更大。 - 主要功能
1.数据分簇(聚类);
2.数据降维(特征降维)。 - 数据聚类(Clustering )
- K均值算法(K-means)
K均值算法要求预先设定聚类的个数,然后不断更新聚类中心;经过迭代使得所有数据点到其所属聚类中心距离的平方和趋于稳定。
步骤:
1.随机选取初始的聚类中心(数据点);
2.根据每个数据的特征向量,从K个聚类中心寻找最近的作为其簇标记;
3.标记所有数据后,更新类簇中心;
4.若聚类中心趋于稳定,迭代停止,否则回到2步继续循环。
特点:
K-means聚类模型所采用的迭代式算法,直观易懂且实用。但存在两大缺陷:
1.容易收敛到局部最优解(例如初始中心选取不佳时);
2.需要预先设定簇的数量。
解决办法:
1.通过执行多次K-means算法来挑选性能表现更好的初始中心点这种工程方法解决模型设计上的缺陷;
2.“肘部”观察法,即观察距离平方和随K值变化的走势,理想条件下应当有个拐点,从这个拐点对应的K值开始,类簇中心的增加不会过于破坏数据聚类的结构,进而粗略预估相对合理的类簇个数。 - 聚类算法性能的评价
1.若被用来评估的数据本身带有正确的类别信息,那么使用Adjusted Rand Index(ARI)。ARI指标与分类问题中计算准确性(Accuracy)的方法类似,同时也兼顾了类簇无法与分类标记一一对应的问题。
2.若被用于评估的数据没有所属类别,那么习惯使用轮廓系数(Silhouette Coefficient)来度量聚类结果的质量。轮廓系数同时兼顾了聚类的凝聚度(Cohesion)和分离度(Separation),用于评估聚类的效果,取值范围为[-1,1]。轮廓系数越大,表示聚类的效果越好。 - 特征降维(Dimensionality Reduction)
目的:
1.训练样本特征维度特别高且缺乏领域知识时,构建有效的低维度特征;
2.为数据可视化(展现)提供了可能。 - 主成分分析(Principal Component Analysis)
首先把数据原来的特征空间做了映射,使得新的映射后特征空间数据彼此正交。这样,通过主成分分析就尽可能保留下具备区分性的低维数据特征。
特点:
降维/压缩问题是选取数据具有代表性的特征,在保持数据多样性的基础上,规避掉大量的特征冗余和噪声,不过此过程也可能会损失一些有用的模式信息。但经过大量实践证明,相较于损失的少部分模型性能,维度压缩能节省大量用于模型训练的时间。使得PCA所带来的模型综合效率更高。