本篇介绍一下常用的统计学习的方法及评价指标,同样是一篇大纲向,不涉及底层的推导,确切的说是懒得写。其实数学推导是一门必修的基本功,虽然时间久了会忘,但总不能式子一点也推不出来吧。。。
统计学习方法
线性回归:万恶之源有木有=。=几乎所有高大上的算法都是因为线性的方法得不到良好的效果才衍生出来的,然鹅越是学到后面就越忘了老祖宗的存在和意义。。线性回归在数学上没有什么难点,不过基于正则化衍生出了L1范数的Lasso回归(降维、难算)、L2范数的Ridge回归(常用),又将线性的思想应用到了Logistic回归、神经网络的神经元处理函数(深度学习跑错片场了=。=)、Boosting等。
模型类别:生成模型。
应用场景:回归。
损失函数:基于OLS得出MSE。
最优解:理论上是存在闭式解的,只是大多数时候不可能满足数据数等于特征数的条件,所以一般使用数值优化方法求解,例如梯度下降。
大数据:实现简单。
实际效果:emmm。。。(不应该这么黑的,因为回归里有多元回归、多项式回归等,这些变种的拟合效果有时还是挺不错的=。=)
Logistic回归:大名鼎鼎的逻辑回归,式子是简单的,不过需要注意的是,这是个二分类器(衍生出了多分类的升级版Softmax),并且数据必须线性可分。
模型类别:判别模型。
应用场景:二分类。
损失函数:将式子做一些变化,可以得到其损失函数,即交叉熵。
最优解:迭代解,一般使用梯度下降、拟牛顿法等。
大数据:实现简单。
实际效果:容易欠拟合。
朴素贝叶斯:朴素二字,说明特征之间相互独立是使用该方法的前提(用于最后各类别下特征概率的连乘)。其实朴素贝叶斯没啥可说的,唯一需要提一下的是拉普拉斯修正,目的是防止某一分类没有出现导致该分类被判断概率为0,会使分类器准确率下降。比较像正则化的思想,即分子+1,分母+数量。
模型类别:生成模型。
应用场景:多分类。
损失函数:无。
最优解:无(只能说概率大的类别是最有可能的所属类别)。
大数据:实现简单。
实际效果:尚可,不过需要取决于数据集的数量与分布。
决策树:一个庞大的分支,任何牵扯到树形结构的都不是好惹的(在高级数据结构里也是=。=)。信息熵、信息增益、基尼系数这些先不提了(虽然是出自信息论的超高大上的理念,然鹅决策树的重点毕竟在于树=。=)。继ID3、C4.5后,最好用的单颗决策树应该算是CART树(分类+回归)。另外,在树递归生成的过程中还涉及到后剪枝(前剪枝太容易欠拟合)。对于多个分类器(集成学习)而言,又牵扯出了Boosting、Bagging两大类别,前者使用全部数据集调高错误权重,后者随机采样部分数据集不调权重。这两种方法中,基于决策树的算是最有名了,例如基于Boosting的AdaBoost(分类),Boosting的GBDT(回归)(梯度提升树,衍生出了XGBoost)等,基于Bagging的Random Forest,Extra Trees等。因此特点难以一概而论,之后会新开一篇博文专门说说决策树=。=
SVM:在深度学习再次兴起前是一个非常非常有效的模型。主要分为线性可分、线性不可分、非线性SVM。其实三个式子的推导大同小异,都用到了最优化、正则化等理念。这里说几个,对偶问题:这里指的是利用拉格朗日对偶性将原问题进行转换,对偶这个概念说起来比较复杂了,之后新开一篇专门说说最优化的相关问题。KKT条件:也是最优化中的问题,针对不等式约束和参数需要满足的条件,同上。核方法:这个是一种解决非线性问题的通法,在SVM的损失函数里存在一个向量的乘积,这个乘积其实就是线性核,替换成其他非线性核(例如最为出名的高斯核)就成了非线性可分的SVM。
模型类别:判别模型。
应用场景:多分类、回归(SVR)。
损失函数:数据点到超平面距离之和最小化。
最优解:迭代解,一般基于梯度下降、拟牛顿法(例如BGFS)、共轭梯度法等(还有牛顿法,但牛顿法计算很复杂)。由于系数太多,因此在计算的时候会使用例如启发式算法SMO求解。
大数据:计算复杂(本来SVM的计算就比较复杂)。
实际效果:比较有效的模型之一。
EM算法:EM算法与其说是一种具体的算法,更像是一种思想。Expectation->Maximization,说的绕口一点就是定参->求期望->修参->求期望,以此反复,是一种迭代算法。其实这个算法挺抽象的,用具体的例子来解释更为形象,例如K均值聚类就是应用了EM思想的典型算法。不过有一个结论就是EM算法必收敛,故称为上帝的算法。
K-Means:典型的无监督算法。特点:具有超参(簇的个数),最终结果在一定程度上会取决于初值,且无法保证收敛至全局最优解,因此衍生出了二分K均值聚类。
模型类别:无。
应用场景:多分类。
损失函数:无。
最优解:迭代解,基于EM算法。
大数据:实现简单。
实际效果:无(K均值算法求解的并非是最终结果)。
K-NN:最原始暴力的算法之一,通过求解距离(例如欧氏距离等)得到分类。
模型类别:判别模型。
应用场景:多分类。
损失函数:无(不需要)。
最优解:无。
大数据:计算复杂(应该说是巨大)。
实际效果:不好说,简单粗暴,最大的问题应该说是计算量。
HMM:隐马尔科夫链模型,名字很长其实原理是比较简单的,最典型的是一阶HMM。HMM是一种有向图(有向无环图的高效算法要属基于DP思想的Viterbi算法了,时间复杂度为O(n^3),和基于贪心思想的Dijkstra算法有一些区别,之后说=。=),最经典的那个模型图大家都懂。而且对于阶数之前的时间点是不考虑进当前时间点的预测的。其次HMM的状态转换使用一个叫转移概率的东东去测算,这个是需要有监督学习去计算的。比较典型的应用就是输入法或时序分析等(理论上都算序列分析了)。
模型类别:生成模型。
应用场景:序列分析。
损失函数:无。
最优解:无。
大数据:实现简单。
实际效果:虽然模型理论是简单的,不过效果还行。
最大熵:这个就很复杂,很复杂很复杂了(不小心说了三遍=。=),因为最大熵模型算是一种概念的理想模型(算是一种思想吧),也就是说最大熵这个概念可以应用到众多模型中,而且理论上效果很好。通俗的说最大熵的思想就是,在已有的知识上,能够容纳最大的不确定性(即不做出其他过多的假设和约束),也就是熵最大,这样的模型效果是最好的。不过,最大熵的实现是个很大的问题,而且计算十分复杂。
CRF:条件随机场,其实HMM算是特殊的CRF。CRF是一种无向图,说白了,比如一阶HMM只考虑前一序列,那么线性链的一阶CRF就是考虑前后各一序列,想象成一个连通量就容易理解了,就好像构成了一个Field。其实CRF从名字也可以看出,就是在有条件约束下随机变量的域,中文真的太精妙了=。=,CRF可以说是HMM的进化版,应用场景也类似。
模型类别:判别模型。
应用场景:序列分析。
损失函数:无。
最优解:无。
大数据:实现复杂,因为考虑的因素多了,计算相对复杂。
实际效果:比较有效的模型之一。
评价指标
精确率、召回率:Precision、Recall。精确率指判断出的样本中有多少是正确的的,召回率指有多少样本被判断出了。这两者在极端情况下是有一些矛盾的,所以需要权衡(衍生出了F-Score)。
应用场景:二分类。
特点:会随数据集分布变化而变化。
ROC曲线、AUC面积:假阳率为横坐标,真阳率为纵坐标绘制的一条曲线。其实一个分类器直观理解上应该是只有一个点的,而之所以一个分类器能画出一条ROC曲线,是因为将概率评分从大到小排序后不断取阈值,阈值上的判为正,阈值下的判为负,并以此计算真阳率与假阳率,最后绘制出完整的ROC曲线(很有意思=。=)。这里需要提两个点,一个是(0,0),说明所有点被判负,一个是(1,1)说明所有点被判正,这两个从真阳率和假阳率的式子就可以看出。而AUC面积是将ROC曲线的结果更清晰的体现出来了。若AUC值若为0.5,则分类器没有用(一个判断正与负都是五五开的分类器2333=。=)。
应用场景:二分类。
特点:不会随数据集分布变化而变化。
对数损失:其实就是传说中的交叉熵(Cross Entropy),很常用的多分类评价指标了,也可直接评价,无需多说。
应用场景:多分类。
特点:流弊=。=
准确率:即Accuracy,顾名思义,式子比较简单。
应用场景:多分类。
特点:这样简单粗暴的指标有一定局限性,例如说在多分类问题上只能给出准确率,但无法区分到底错在哪。
海明距离:Hamming Distance,准确率的进化版,由于指示函数内的距离计算使用了多个分类,所以可有效用于多分类问题,其实和交叉熵是有点像的。
应用场景:多分类。
特点:无。
Jaccard相似系数:有名的评价指标,使用的是预测类别和真实类别的交并集的商,和海明距离的判断是反过来的。
应用场景:多分类。
特点:无。
MSE:平均平方误差,传说中的均方差,回归常用的评价指标。
应用场景:回归。
特点:平方后可以求导,这个很重要了,所以经常作为损失函数。
MAE:平均绝对误差,回归常用的评价指标,MSE不取平方改为取绝对值就是MAE,本质没有大差别。
应用场景:回归。
特点:能更好的反应真实值和预测值的实际情况。
R^2分数:决定系数,常在sklearn里使用到的评价指标。其实就是变了个式子去评价,不过有一个很好的特性,就是通常范围在(0,1),当然在模型很差的情况下也可能出现负数。此外,给出一个决定系数的时候可以评价出模型的好坏,这点不像MSE,得出一个值后完全没法评价只能横向比较=。=
应用场景:回归。
特点:可直接用于评价。
Rand Index:是使用聚类结果中同类别的数量+不同类别的数量(分母是样本量)得到的,通过调整后,可以得到ARI,取值在[-1,1],取0时说明聚类结果是随机产生的,越接近1越好。
应用场景:聚类。
特点:无。
互信息:通过计算分布的熵来测算分布之间的吻合程度。同上,AMI的意义也是一样。
应用场景:聚类。
特点:无。
轮廓系数:通过计算不同类别样本的平均距离-同类别样本的平均距离(分母取两者的最大值,至于为啥不是很清楚=。=),取值在[-1,1],越接近1效果越好。
应用场景:聚类。
特点:无。
先写这么多,深入的之后写,撒花~~~
浙公网安备 33010602011771号