Spark.MLlib之线性分类模型学习笔记

在Spark的学习过程中MLlib的学习至关重要,分类模型作为其中的一个重要模块应对其有更深的了解。接下来的内容是学习MLlib线性分类模型应该注意的几点:

数学公式

首先MLlib中线性分类模型的数学公式如下:

f(w)=λR(w)+1nni=1L(w;wi,yi)

这里的公式由损失函数 L(w; x,y)和正则化函数 R(w)两部分组成。其中损失函数用于评估模型在训练集上产生的错误(误差),是 w上的凸函数;正则化函数则用于控制模型的复杂度(避免过拟合);参数 λ>0 则用于权衡最小化训练误差和最小化模型复杂度。

损失函数

MLlib所支持的损失函数包括如下几种:

损失函数类型 L(w; x,y) L(w;x,y)w
hinge max{0,1ywTx};y[1,1] {yxifywTx<10otherwise
logistic log(1+expywTx);y[1,1] y(111+expywTx)x
squared 12(wTxy)2 (wTxy)x

正则化

正则化的目的主要是简化模型,避免过拟合,MLlib中支持一下几种正则化方法:
Spark.MLlib之线性分类模型学习笔记_第1张图片
出于其平滑性,L2正则化问题比L1更易解决,但L1正则化能够帮助稀疏权值,从而产生更简单且易于理解的模型,比较适用于特征选择中。elastic net则是L1和L2正则化的组合形式。正则化在现实中几乎是必须的,尤其是当特征维度高于训练样本数时,正则化显得特别重要。

优化方法

线性模型一般采用凸优化的方式优化目标函数,MLlib分类模型的优化方法主要分两种:SGD(随机梯度下降)和L-BFGS。SGD是MLlib中所有模型默认的优化技术,而L-BFGS通常来说更精确,要调的参数也较少;但只有逻辑回归模型在LogisticsRegression WithLBFGDS中使用。关于MLlib中优化方法的详细介绍请参考这里

分类模型

MLlib中的线性分类模型主要有线性SVM,逻辑回归两种,关于其介绍请参考Linear SVM和LogisticRegression


你可能感兴趣的:(Spark)