本文主要是介绍统计学习-基本术语和概念,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.统计学习和机器学习:
统计学习就是计算机系统利用数据和统计方法提高系统性能的机器学习,如今的机器学习一般指的就是统计学习。所谓的系统性能一般指对数据的分析和预测能力。
2.输入空间,输出空间,特征空间
将输入和输出所有可能的取值称之为输入空间和输出空间;
每个输入实例通常由一个特征向量进行表示,这样所有的特征向量构成了特征空间。有的时候输入空间和特征空间是相同的,有的时候是不同(比如:输入是一张图片实例,在图片识别分类中,我们需要对图片进行特征提取)
3.统计学习三要素
模型:就是我们需要学习的条件概率分布或者决策函数。模型的假设空间(hypothesis space)包含所有可能的条件概率分布或决策函数。比如,假若决策函数是输入变量的线性函数,那么模型的假设空间就是所有线性函数构成的集合。
顺便提一下,由决策函数表示的模型称之非概率模型;由条件概率表示的模型称之概率模型。
策略:就是如何从假设空间中选择最优的模型。这就涉及到选择的好坏问题,如何度量这种好坏就得引入损失函数( L(Y,f(X)) )和风险函数( Rexp(f)=Ep[L(Y,f(X))] )。
损失函数度量模型一次预测的好坏,对于非概率模型的损失函数一般有0-1损失函数,平方损失函数和绝对损失函数,对于概率模型的损失函数有对数损失函数。具体定义如下:
风险函数度量平均意义下模型的预测好坏:
但是风险函数的求解需要获得 X,Y 的联合概率 P(x,y) 。实际上,我们如果知道 P(x,y) 就可以直接获得输出的条件概率 P(y|x) 了,这就是一个鸡生蛋,蛋生鸡的问题。换个角度再想想,我们可以通过计算给定样本的平均损失(即经验风险)来估计期望风险:
原因是:根据大数定律,当样本容量N趋于无穷时,经验风险趋于实际的期望风险。但是一般而言我们的样本是有限的,所以单纯的通过经验风险估计期望风险所得到模型的泛化能力一般都是不足的。
针对经验风险最小化(empirical risk minimization,ERM)泛化能力不足的问题,我们可以在代价函数中添加正则项,即结构风险最小化(structural risk minimization,SRM).
算法:是指学习模型的具体计算方法。统计学习基于训练数据集,根据学习策略从假设空间中选择最优模型,最后需要考虑的就是用什么样的方法求解最优模型,这个时候就是在已知代价函数的基础下求解模型参数。
4.正则化:在原本的经验风险代价函数的后面添加一个用于描述模型复杂度的项目,该项目被称作正则化项,正则化符合奥卡姆剃刀原理。所谓奥卡姆剃刀原理应用于模型选择时就是:在所有可能的选择的模型中,能够很好的解释已知的数据并且十分简单才是最好的模型。一般用于描述模型复杂度的有L0,L1和L2范数。
L0范数是指向量中非0的元素的个数。如果我们用L0范数来规则化一个参数矩阵W的话,就是希望W的大部分元素都是0。这太直观了,太露骨了吧,换句话说,让参数W是稀疏的。
L1范数是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)。L0范数很难优化求解(NP难问题),而L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解,L0和L1都是用来进行特征选择的。
L2范数是指向量各元素的平方和然后求平方根。我们让L2范数的规则项 ||W||2 最小,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0,L2范数可以提高模型的泛化能力,同时L2范数方便优化求解,获取的特征相比于L1和L0更加平滑。
5.交叉验证(cross validation)
首先涉及三类数据:训练集(training set),验证集(validation set)以及测试集(test set)。训练集用来模型的训练,验证集用于模型的选择,测试集用于最终对学习方法的评估。
1.简单交叉验证:将数据的70%作为训练集,30%作为测试集。然后用训练集在各种条件下训练模型,从而得到不同的模型,在测试集上评价各个模型的测试误差,选出测试误差最小的模型。
2.S折交叉验证:将数据随机地切分为S个互不相交的大小相同的子集;然后利用S-1个子集的数据训练模型,利用余下的子集测试模型;将这一个过程对可能的S种选择重复进行,最后选择S次评测中平均测试误差最小的模型;
3.留一交叉验证:往往在数据缺乏的情况下使用,假设存在N个数据,一般将S=N
6.生成模型和判别模型:
监督学习可以分为生成方法(generative approach)和判别方法(discriminative approach)。
生成方法由数据学习联合概率分布 P(X,Y) ,然后求出条件概率分布 P(Y|X) 作为预测的模型,即生成模型: P(Y|X)=P(X,Y)P(X) ,这种方法之所以称为生成方法是因为模型表示了给定输入X产生输出Y的生成关系,典型的生成模型有朴素贝叶斯和隐马尔科夫模型。
判别模型则是由数据直接学习决策函数 f(X) 或者条件概率分布 P(Y|X) 作为预测的模型,典型的判别模型比如:kNN,感知机,决策树,LR,最大熵模型,svm,提升方法(比如:AdaBoost,bagging,随机森林)和条件随机场。
7.准确率(precision),召回率(recall)和 F1
TP(真阳):将正类预测为正类
FP(假阳):将负类预测为正类
TN(真阴):将负类预测为负类
FN(假阴): 将正类预测为负类
P(准确率)=TPTP+FP
R(召回率)=TPTP+FN
2F1=1P+1R ,准确率和召回率都高时, F1 值也会高。
TPR=TPTP+FN
FPR=FPFP+TN
从图中可以看出,ROC曲线一般在(0,0)和(1,1)直线的上方。(因为对于二分类问题而言,这条直线就代表随机猜测,0.5的概率预测正确)
在ROC 空间中,每个点的横坐标是FPR,纵坐标是TPR,这也就描绘了分类器在TP(真正的正例)和FP(错误的正例)间的trade-off。Area Under roc Curve(AUC)就出现了。顾名思义,AUC的值就是处于ROC curve下方的那部分面积的大小。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的Performance。
8.监督学习的三类问题:
1.分类问题:当输出变量Y取有限个离散值时,预测问题便成为分类问题
2.标注问题:是分类问题的一个推广,标注问题又是更复杂的结构预测。标注问题的目标在于学习一个模型,使它能够对观测序列给出标记序列作为预测。(可能的标记个数是有限的,但其组合所成的标记序列的个数是依序列长度呈指数级别增长的),标注常用的统计学习方法有:隐马尔科夫模型和条件随机场。
3.回归问题:用于预测输入变量和输出变量之间的关系,回归问题的学习等价于函数拟合,选择一条函数曲线使其可以很好地拟合已知数据且很好地预测未知数据。
这篇关于统计学习-基本术语和概念的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!