机器学习知识体系

来自DataFocus资料库
跳到导航 跳到搜索

数学基础

概率统计

  • 频率学派与贝叶斯学派

频率学派亦称古典概型,是使用随机事件的发生的频率描写叙述概率的方法。在贝叶斯学派的观点下概率表示的是事件的不确定性大小,参数被预设为概率分布。在频率学观点中,参数被当做是一个需要我们求的确定的參数。而在贝叶斯观点中,參数的情况来自于一个预设的分布而不是一个确定的值。贝叶斯观点的优势在于在模型中引入参数的先验知识。比如在抛硬币的试验中。假设抛三次硬币出现了三次都是正面。那么依据频率学的观点,使用最大似然进行预计那么得到出现正面的可能性为1。这就是说以后都是以1的概率出现正面。相反在贝叶斯的理论中,引入一个合理的先验将会避免这样极端的结论。

  • 随机变量

随机变量(random variable)表示随机试验各种结果的实值单值函数,体现了随机试验与唯一实值的映射关系,并且随机事件不论与数量是否直接有关,都可以数量化,即都能用数量化的方式表达随机试验的发生。

  • 分布

统计分布(frequency distribution)亦称“次数(频数)分布(分配)”。在统计分组的基础上,将总体中的所有单位按组归类整理,形成总体单位在各组间的分布。分布在各组中的单位数叫做次数或频数。各组次数与总次数(全部总体单位数)之比,称为比率或频率。将各组别与次数依次编排而成的数列就叫做统计分布数列,简称分布数列或分配数列。它可以反映总体中所有单位在各组间的分布状态和分布特征,研究这种分布特征是统计分析的一项重要内容。

  • 概率分布

概率分布,是指用于表述随机变量取值的概率规律。事件的概率表示了一次试验中某一个结果发生的可能性大小。若要全面了解试验,则必须知道试验的全部可能结果及各种可能结果发生的概率,即随机试验的概率分布。如果试验结果用变量X的取值来表示,则随机试验的概率分布就是随机变量的概率分布,即随机变量的可能取值及取得对应值的概率。通过概率分布我们可以得到概率密度函数,根据随机变量所属类型的不同,概率分布取不同的表现形式。

  • 累积分布函数

累积分布函数(Cumulative Distribution Function),又叫分布函数,是概率密度函数的积分,能完整描述一个实随机变量X,随着变量的增大函数值也增大。一般以大写CDF标记,,与概率密度函数probability density function(小写pdf)相对。

  • 独立

如果一个事件的发生不影响另一个事件的概率,则两个事件是独立的,统计独立的或随机独立的。有如下公式: p(x,y)=p(x)∗p(y)

  • 条件分布

对于二维随机变量(X,Y),可以考虑在其中一个随机变量取得(可能的)固定值的条件下,另一随机变量的概率分布,这样得到的X或Y的概率分布叫做条件概率分布,简称条件分布。 P(A|B)=P(AB)/P(B)

  • 贝叶斯准则

贝叶斯准则的一般形式与条件分布类似 P(A|B)=P(AB)/P(B) ,其中展开形式如下:P(B)=∑P(B|Aj)P(Aj)

P(Aj|B)=P(B|Aj)P(Aj)/∑P(B|Aj)P(Aj)

损失函数

  • 损失函数概念

损失函数(loss function)或代价函数(cost function)是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数。在应用中,损失函数通常作为学习准则与优化问题相联系,即通过最小化损失函数求解和评估模型。另一方面也存在最大化目标函数的方法,如极大似然估计,一般而言可通过在最大化目标函数前面添加负号的方法转化成求最小化损失函数。 损失函数分为经验风险损失函数和结构风险损失函数。经验风险损失函数指预测结果和实际结果的差别,结构风险损失函数是指经验风险损失函数加上正则项,这里仅介绍经验风险损失函数,没有正则项。

  • 回归问题损失函数
  • 绝对值损失函数

绝对值损失函数将真实值与预测值的差的绝对值作为损失的度量: L(Y,f(X))=|Y−f(X)| 其中 Y,X 为单个样本的标签值与特征向量,该公式只计算了单个样本的损失。

  • 平方损失函数(Squared Loss)

平方损失函数又称均方误差,即真实值与预测值之差的平方和的均值。通常用于回归问题以及线性模型中,之所以采用平方的形式,而非绝对值或三次方的形式,是因为极大似然与最小化平方损失是等价的。具体公式如下:

Mse.png

其中 yi 是第i个样本的标签值, f(xi)是第i个样本的预测值。

  • 分类问题损失函数
  • 对数损失函数(Log Loss)

对数函数,在最优化含有乘积的目标函数中(如极大似然函数),由于其单调性能够,能够在保证结果不变的情况下通过取对数的方法转化为求和的形式,从而大大简化目标函数的求解过程。进一步地,通过在对数函数前添加负号,就变成了求解最小化对数损失函数。对数损失函数标准形式如下:L(Y,P(Y|X))=-logP(Y|X). 其中 P(Y|X) 为小于1的概率值,逻辑回归作为一种0-1二分类算法,其损失函数为对数损失函数:

Log.png

其中 yi 是第i个样本的真实值, f(xi)f(xi) 是第i个样本的概率预测值。

  • 交叉熵损失函数(Cross Entropy Loss)

对于多分类问题,softmax函数往往与交叉熵损失函数一起使用,其形式如下:

Cross.png

其中 yi 是第i个样本真实标签的one-hot向量,真实类别对应的维度是1,其余维度为0, f(xi) 是第i个样本经过softmax函数转化后的概率值向量。逻辑回归的损失函数也是二分类情况下的交叉熵损失函数。

  • 其他损失函数
  • 0-1损失函数

0-1损失是指,预测值和目标值不相等为1,否则为0:

0-1loss.png

感知机使用放宽条件下的0-1损失函数,即满足 |Y−f(X)|<T|Y−f(X)|<T 时认为相等:

0-1loss2.png

其中 Y,X 为单个样本的标签值与特征向量,该公式只计算了单个样本的损失。

  • 指数损失(Exponential Loss)

指数函数具有单调性,非负性的优良性质,使得越接近正确结果误差越小,Adaboost算法就是使用的指数损失函数。但是指数损失存在的一个问题是误分类样本的权重会指数上升,如果数据样本是异常点,会极大的干扰后面基本分类器学习效果,这也是Adaboost算法的一个缺点。其标准指数损失函数公式如下:

Exponential.png

其中yi是第i个样本的标签值,f(xi)是第i个样本的预测值。

  • 铰链损失函数(Hinge Loss)

铰链损失函数,又称折页损失函数、合页损失函数,常用于支持向量机(SVM)中的最大间隔分类。其基本思想是,想让正确分类的得分比错误分类的得分至少高出一个临界值并且其损失为0,否则计算损失,其基本形式如下:

Hinge.png

其中n为样本数,K为类别数,p为临界值,si是第i个样本真实类别的得分, sik 是第i个样本错误类别的得分。在支持向量机中,hinge损失函数转化为如下结构化损失形式:

Svm.png

其中 yi 是第i个样本的真实值,取值范围为(-1,1), f(xi) 是第i个样本的预测值,可以认为是该样本到分隔线的距离,临界值为1。只有当样本被正确分类,且距离大于1时,损失为0,,否则就要计算损失。

最优化

机器学习中绝大多数算法到最后都可以建模成一种最优化模型进行参数求解,一般情况下都是通过最小化损失函数来求解参数,最优化模型所使用的方法我们称为最优化方法。常见的最优化方法有梯度下降法、随机梯度下降法、牛顿法和拟牛顿法、momentum 动量法、Adagrad等等。

  • 梯度下降法

梯度下降法又称最速下降法,其搜索方向为其当前位置下降最快的方向,是最为常用的最优化方法。梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局最优解。一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的。其具体公式如下:

Gradient.png

其中α是学习率, J(θ)是所有训练样本的平均损失函数,参数的更新方向为其导数的负方向。 梯度下降法的缺点:靠近极小值时收敛速度减慢,学习率的设定影响结果是否收敛,以及当目标函数是非凸时,参数初始值的设定影响结果能否达到全局最优。

  • 随机梯度下降法

当训练样本量很大时,针对全部样本计算其损失再求平均得到平均损失函数值,将会耗费大量时间,因此梯度下降法又称批量梯度下降法。为了减少计算成本,由此衍生了两种梯度下降法,即小批量梯度下降法、随机梯度下降法。 小批量梯度下降法基本与批量梯度下降法形式一致,只是每次训练的时候随机抽取一部分训练样本并计算其损失;而随机梯度下降法每次训练的时候只选取一个训练样本来进行参数更新。 小批量梯度下降法与随机梯度下降法虽然不是每次迭代得到的损失函数都向着全局最优方向,但每次训练更新的速度比批量随机梯度下降快,并且大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近,随机梯度下降法以损失很小的一部分精确度和增加一定数量的迭代次数为代价,换取了总体的优化效率的提升。增加的迭代次数远远小于样本的数量。适用于大规模训练样本情况。

  • 牛顿法

牛顿法是一种在实数域和复数域上近似求解方程的方法。方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x) = 0的根。牛顿法最大的特点就在于它的收敛速度很快。其泰勒展开公式如下:

Gradient2.png

其中J(θ)是损失函数,θ0是接近于使得损失函数最小值的解,每一次迭代θ会更接近最优解。由于局部最优解或全局最优解是目标函数一阶导数为0的解,因此我们将上式两边对θ求导,得:

Resolve.png

使 J′(θ) 等于0,得到更新方程为:

Resolve2.png

从本质上去看,牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法就更快。牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部。但是牛顿法作为一种迭代算法,每一步都需要求解目标函数的Hessian矩阵的逆矩阵,计算比较复杂,体现在目标函数的二阶导是被除数,当参数θ是向量时,其二阶导为Hessian矩阵又因为它是分母,所以需要计算其逆矩阵,计算比较复杂。

正则化

正则化的主要作用是为了防止过拟合,它保留所有的变量,将一些不重要的特征变量的权值设置为0或权值变小使得特征的参数矩阵变得稀疏,使每一个变量都对预测产生较弱的影响。从广义上来说,任何能防止模型过拟合的方法都可以说是正则化方法。

  • 惩罚项

为了使特征变量的权重参数尽可能的小或者是趋于0,我们一般在算法的损失函数后增加一个惩罚项。惩罚项一般用范数来表述,L_0范数是指向量中非零元素的个数,希望参数矩阵大部分元素都为0,使特征矩阵稀疏。L_1范数是指向量中各个绝对值元素之和,与L_0范数的作用相似,都是为了产生稀疏的权重向量,但稀疏程度会比L_0范数所产生的稀疏权重向量低。L_2范数是各参数的平方和再求平方根,使用L_2范数的正则化项能够使权重向量的每个元素都很小,都接近于零。但是与范数L_1不同,它的稀疏程度更低,他使得每个权重参数接近于零但很少为零。越小的参数模型越简单,越简单的模型越不容易产生过拟合现象。

L_2范数的另一个作用是可以解决在用正规方程进行最小化代价函数时矩阵可能会不可逆的问题,通过对矩阵对角线添加数值的方法来保证矩阵可逆。

  • 其他形式的正则化

增加训练样本数据.模型出现过拟合的一方面原因是训练数据太少,模型无法看到更多的样本数据,只能尽可能地学习现有的数据,因此也无法做出更好的预测,产生过拟合。一种简单的方案是获取尽可能多的数据,但是当数据以及无法再获得或者只能利用这些数据的时候,另一种增加训练数据的方法是对现有数据进行数据增强。这种方法在图像处理领域使用的比较多,具体做法是对图像进行平移、翻转、缩放、切割等手段将数据库成倍扩充。

减少模型复杂度模型出现过拟合的另一方面原因是模型太过复杂,因此如何降低模型复杂度也是防止过拟合的一种思路。不同算法模型具有不同的减少模型复杂度的方法。 1)传统算法中决策树的防止过拟合的主要方式是减枝,包括预减枝和后减枝。预减枝,通过提前停止树的构建而对树“剪枝”,即使该节点中还有多个类,一旦停止,节点就成为叶节点,其中最频繁的类作为该叶子节点的类。 后减枝,它首先构造完整的决策树,允许树过度拟合训练数据,然后对那些置信度不够的结点子树进行减枝,只保留该节点并作为叶节点,该叶子的类标号用该结点子树中最频繁的类标记。后剪枝的剪枝过程是删除一些子树,然后用其叶子节点代替,这个叶子节点所标识的类别通过大多数原则(majority class criterion)确定。 2)对于深度学习中的神经网络而言,我们可以通过以下方法减少模型复杂度,减少网络层数,减少每一层的神经元数量,Early stopping即早停不过度训练模型,dropout在训练过程中抑制神经元激活, 3)集成模型,通过将多个模型进行结合,共同决策防止过拟合。常见的两种方法是Bagging以及Boosting,bagging的做法是用不同的模型拟合不同部分的训练集,使得各个模型的训练数据尽可能的不一致,常见的算法有随机森林;Boosting,通过不断优化上一轮训练的模型表现,更加注重分错的样本,再通过模型集成的方式预测样本,常见的算法有Adaboost,gbrt等。

机器学习

机器学习问题处理流程

  • 明确问题

将实际问题抽象成机器学习问题,明确实际问题的最终目标是什么?是机器学习问题中有监督的分类问题、回归问题、无监督的聚类、降维还是强化学习问题?如果问题比较复杂,需要划分成更细的问题,抽象成对应的机器学习问题。

  • 数据处理过程

数据处理过程包括数据收集,数据清洗,数据探索,清洗特征,挑选特征,特征构造等等,有时候有关于特征的处理统称为特征工程。数据质量的好坏直接决定了机器学习效果的上限,而算法和模型只是尽可能地逼近这个上限。因此获取一个高质量的数据集对机器学习有着巨大的帮助,针对某一个具体的领域,可以使用一些网上公开的数据集,这些公开的数据集大都被整理过并被大家认可,几乎可以直接运行而不要要过多的数据处理。如果实际数据是原始数据,没有被加工过,那我们只好将原始数据,一步一步进行加工、整理,清洗成可以使用的数据。

  • 构建模型

当我们处理好数据之后,就可以选择合适的机器学习模型进行数据的训练了。首先我们要对处理好的数据进行分析,根据我们对该问题的理解,判断训练数据中哪些是标签哪些是特征,若是有标签则应该考虑监督学习的模型,否则可以划分为非监督学习问题。其次分析问题的类型是属于分类问题还是回归问题,当我们确定好问题的类型之后再去选择具体的模型。在模型的实际选择时,通常会考虑尝试不同的模型对数据进行训练,然后比较输出的结果,选择最佳的那个。此外,我们还要考虑到数据集的大小。

  • 模型调参优化与评估

模型可以通过网格搜索或者随机搜索等调参手段,选取模型最优的参数,然后利用评价指标和方法来评估模型的好坏。例如:我们可以选择查准率、查全率、AUC指标来体现模型的好坏。当然,也可以针对一种模型采用多种不同的方法,每种方法给予不同的权重值,来对该模型进行综合“评分”。在模型评估的过程中,我们可以判断模型的“过拟合”和“欠拟合”。若出现过拟合,则可以通过增大训练数据集,或者减小模型复杂度的方式来避免过拟合。

  • 上线运行

在训练好了模型之后,模型在线上运行的效果直接决定模型的成败。不单纯包括其准确程度、误差等情况,还包括其运行的速度(时间复杂度)、资源消耗程度(空间复杂度)、稳定性等方方面面。

机器学习问题

机器学习问题大体可分为四大类,有监督学习,无监督学习,半监督学习以及强化学习。

  • 有监督学习

有监督学习的训练数据既有特征又有对应的标签,通过训练可以让模型学习到从输入到输出的一般规则,从而能够预测未标记的新样本。

有监督学习又分为两大类,回归问题与分类问题。回归问题的样本标签值为连续的数值,分类问题的样本标签值为离散的类别型变量。

常见的算法有:线性回归,神经网络,决策树,支持向量机,KNN等。

  • 无监督学习

无监督学习的训练数据只有特征没有标签,通过训练可以揭示数据的内在性质及规律,为进一步的数据分析提供基础。

无监督学习包括聚类,降维,密度估计。 聚类方法包括,K均值聚类,均值漂移聚类,基于高斯混合的最大期望聚类,层次聚类。 降维方法包括,PCA降维,LDA降维,局部线性嵌入LLE

  • 半监督学习

半监督学习是有监督学习和无监督学习的结合,训练数据中有小部分标记数据,大部分是没有标记的数据。和监督学习相比,成本低,但又能达到较高的准确度。半监督能够成功基于以下假设:

(1)位于稠密数据区域的两个距离很近的样例的类标签相似,也就是说,当两个样例被稠密数据区域中的边连接时,它们在很大的概率下有相同的类标签;相反地,当两个样例被稀疏数据区域分开时,它们的类标签趋于不同。

(2)当两个样例位于同一聚类簇时,它们在很大的概率下有相同的类标签.这个假设的等价定义为低密度分离假设(Low Sensity Separation Assumption),即分类 决策边界应该穿过稀疏数据区域,而避免将稠密数 据区域的样例分到决策边界两侧。

(3)流形假设,将高维数据嵌入到低维流形中,当两个样例位于低维流形中的一个小局部邻域内时,它们具有相似的类标签。

半监督学习的方法有基于生成式方法,协同训练法,判别式方法等。

  • 强化学习

强化学习是指模型通过“试错”的方式进行学习,通过与环境进行交互获得的奖赏来指导行为,目标是使模型获得最大的奖赏,使得模型偏向于做出奖赏大的行为。强化学习不同于监督学习,主要表现在强化信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉强化学习模型如何去产生正确的动作。强化学习的另一个特点是依靠自身的经历进行学习,改进行动方案以适应环境。

在强化学习中,包含两种基本的元素:状态与动作,在某个状态下执行某种动作,这便是一种策略,学习器要做的就是通过不断地探索学习,从而获得一个好的策略。在实际问题中,强化学习并没有监督学习那样的标记信息,通常都是在尝试动作后才能获得结果,因此强化学习是通过反馈的结果信息不断调整之前的策略,从而算法能够学习到:在什么样的状态下选择什么样的动作可以获得最好的结果。

特征工程

特征工程包含很多方面,比如要先制定特征的获取方案,特征处理,特征评估等等。

  • 特征获取方案

首先我们要确定我们的目标需要哪些特征数据,在这方面很大程度上是基于对业务的理解,尽可能地从中挖掘出与问题相关的变量;同时要评估这些变量的获取难度,以及从哪些途径获取数据。

  • 特征处理

特征处理是特征工程中最为繁琐的过程,从大方向来讲具有特征清洗以及预处理两方面。特征清洗:在我们拿到原始数据之后,我们首先要做的就是对数据进行清洗,比如规范数据的格式,去掉无效异常的样本数据等。如果有需要的话,要对样本数据进行分类,赋予不同的权重,若出现样本数据不均衡的情况下,需要考虑重采样等方式。

数据预处理:在得到了较为完整的样本数据之后,我们要对具体特征进行预处理。比如,对数值特征进行标准化,归一化,离散化等操作;对类别特征进行编码;对缺失值的处理,采用均值填充,中位数填充,或插值等方法还是直接去掉该样本或去掉该列特征;也可以对特征进行变换,取对数,指数,多项式变换等等。在面对候选特征较多的情况下,我们可以采取PCA或LDA降维,缺点是降维之后的特征不具有明显的实际意义;另一种方法,我们可以筛选重要特征的方式来减少特征,比如通过相关系数,考察特征变量与目标变量的相关程度,卡方检验,信息增益,互信息等方式;另一种方式是通过机器学习算法本身来自动的选择特征,比如通过添加L1正则项的Lasso算法能够得到稀疏解,系数为0的特征就是不重要的,通过决策树计算特征的信息增益,通过随机森林算法,计算特征的重要性等方式。

机器学习调参

  • 交叉验证

交叉验证概念交叉验证法的主要作用是挑选参数。先将数据集D划分为k个大小相似的互斥子集,即 D=D1∪D2∪...∪Dk,Di∩Dj=∅(i≠j)。每个子集 Di 都尽可能保持数据分布一致性,然后每次用k-1个子集作为训练集,余下的一个子集作为测试集,计算测试结果。以此进行k次训练和测试,并将k次结果取均值作为该轮交叉验证下的最终结果。

注意,该轮交叉验证是在模型某一组参数固定不变的情况下进行的,最终的均值结果作为评价模型在该组参数下的表现情况。若我们需要调优的参数p具有n个候选值,保持其他参数不变,改变参数p的值,则需要进行n轮上述交叉验证,取最终结果最小的所对应参数p的值作为最优参数值。

交叉验证方法根据数据集划分的大小不同,交叉验证又可以分为留出法,留一法,k折交叉验证以及自助法(booststrapping)。

留出法:直接将数据集D划分为两个互斥集合,其中一个集合作为训练集训练模型,另一个集合作为测试集估计泛化误差。一般情况下,我们将原数据集的75%作为训练集,余下的25%作为测试集。

留一法:将有m个样本的数据集D中的一个样本作为测试集,其余m-1个样本作为训练集。留一法的优点是能够最大程度地利用原数据集训练模型,且最优参数下的模型与我们用数据集D期望得到的模型基本一致。但是当样本数量太多时,留一法一轮的训练次数与样本量一致,当需要调优的算法很多时,训练次数也会成倍增加。

k折交叉验证:该法将数据集D随机等分为k个互斥子集,尽可能地保持数据分布一致性。与留一法相比减少了每轮的训练次数,同时尽可能保持训练样本数。

自助法(booststrapping):自助法以有放回地随机采样法即自助采样法为基础。在给定包含n个样本的数据集中,我们每次从中抽取一个样本并放回,一共抽取n次。使用自助抽样法,约有36.8%的数据样本没有被抽到,我们可以将该数据集作为测试集,亦称包外估计。自助法的优势在于能够保持训练样本数不变,并且存在没有用于训练的样本作为测试集。

  • 超参数选取

网格搜索(Grid Search)网格搜索作为一种调参手段,本质上是一种穷举搜索。在学习算法的超参数空间中手动指定各个超参数的范围,并在所有的参数组合中,执行交叉验证法,计算评价性能的指标,选取评价指标最优所对应的参数组合作为最优的参数组合。一般先选取范围较大的参数组合,再细化;网格搜索的弊端在于所需要调节的参数越多,每个参数的候选值越多,耗费时间越长。

随机搜索(Random Search)针对所需调节的参数量大,每个参数候选值多所导致的耗费时间长的问题,随机搜索能够大幅度减少调参所需要的时间。与网格搜索相比较,随机搜索并未尝试所有的参数候选值,而是从指定的分布中采样固定数量的参数值作为候选值。与网格搜索中对参数提供候选值列表不同,在随机搜索中建议对连续型参数设置候选分布。

评价准则

  • 误差

我们把模型的预测输出与样本的真实输之间的差异称为“误差”。模型在训练集上的误差称为“经验误差”或“训练误差”,在测试集上的误差称为“测试误差”或“泛化误差”。我们的目的是希望得到泛化误差较小的模型,然而我们很多时候并不知道新样本,只能通过最小化模型的训练误差,从而得到一个泛化误差比较好的模型。

  • 过拟合与欠拟合

过拟合与欠拟合是从定性方面来评价模型测试误差较大的情况。

过拟合:我们可以通过最小化训练误差得到一个在训练集上表现很好的模型,其训练误差可以很低甚至是0,表明模型在训练集上完全预测准确或将样本分类全部正确。然而在测试集新样本中表现很差,这就是过拟合,表明模型将训练样本中的个性特征当做所有潜在样本的一般特征,从而导致泛化误差很差。

欠拟合:与过拟合相反,模型在训练集上的表现很差,在测试集上表现也很差。表明模型没有从训练集上学习到样本的一般特征,因此也没法在测试集上做出良好的预测。

  • 偏差与方差

x为测试样本,y为xx的真实标记,yD为x的预测标记。

算法的期望预测为f¯(x)=𝔼D[f(x;D)]

方差为:var(x)=𝔼D[(f(x;D)−f¯(x))2]

偏差为bias2(x)=(f¯(x)−y)2

噪声为ϵ2=𝔼D[(yD−y)2] 因此泛化误差可以分解为方差、偏差与噪声之和. E(f;D)=bias2(x)+var(x)+ϵ2

Varbias.png

从图中我们可以看出,随着模型复杂度的增加,偏差一直减小,方差一直增大,总误差先减小后增大,存在最优的模型复杂度使得总误差最小。同时在前期,偏差大方差小,模型属于欠拟合;在后期,偏差小方差大,模型属于过拟合。

  • 回归问题评价指标

Regression criteria.png

  • 分类问题评价指标

混淆矩阵:

Real positive Real negnegative
Predict positive True positive(TP) False positive(FP)
Predict negative False negative(FN) True negative(TN

Classfier-criteria.png

ROC:ROC曲线全称为“受试者工作特征”曲线,以假正率为横坐标,以真正率为纵坐标,以一系列概率为阈值,在坐标系中画出曲线。 AUC:AUC值为在坐标系中,ROC曲线以下的面积。

算法

机器学习算法

深度学习算法

开发框架

ensorFlow

Pytorch

Keras

Scikit-Learn

Numpy

Pandas

Matplotlib