2.2分类(classification)

2.2 分类(classification)

2.2.1 多层感知器分类器(MLPC(Multilayer Perceptron Classifier))

多层感知器分类器(MLPC)是基于前馈人工神经网络(ANN)的分类器。 MLPC由多个节点层组成。 每个层完全连接到网络中的下一层。 输入层中的节点表示输入数据。 所有其他节点,通过输入与节点的权重w和偏置b的线性组合,并应用激活函数,将输入映射到输出。 对于具有K + 1层的MLPC,这可以以矩阵形式写成如下:

中间层中的节点使用sigmoid(logistic)函数:

输出层中的节点使用softmax函数:

输出层中的节点数量N对应于类的数量。

MLPC采用了BP(反向传播,Back Propagation) 算法,BP算法的学习目的是对网络的连接权值进行调整,使得调整后的网络对任一输入都能得到所期望的输出。BP 算法名称里的反向传播指的是该算法在训练网络的过程中逐层反向传递误差,逐一修改神经元间的连接权值,以使网络对输入信息经过计算后所得到的输出能达到期望的误差。

2.2.2&2.2.3 多类分类(Multiclass Classification)

SVM 算法最初是为二值分类问题设计的,当处理多类问题时,就需要构造合适的多类分类器。目前,构造SVM多类分类器的方法主要有两类:一类是直接法,直接在目标函数上进行修改,将多个分类面的参数求解合并到一个最优化问题中,通过求解该最优化问题“一次性”实现多类分类。这种方法看似简单,但其计算复杂度比较高,实现起来比较困难,只适合用于小型问题中;另一类是间接法,主要是通过组合多个二分类器来实现多分类器的构造,常见的方法有one-against-one和one-against-all两种。

One Vs Rest一对多法(one-versus-rest,简称OVR SVMs)。训练时依次把某个类别的样本归为一类,其他剩余的样本归为另一类,这样k个类别的样本就构造出了k个SVM。分类时将未知样本分类为具有最大分类函数值的那类。

注:这种方法有种缺陷,因为训练集是1:M,这种情况下存在biased.因而不是很实用。

One Vs One一对一法(one-versus-one,简称OVO SVMs或者pairwise)。其做法是在任意两类样本之间设计一个SVM,因此k个类别的样本就需要设计k(k-1)/2个SVM。当对一个未知样本进行分类时,最后得票最多的类别即为该未知样本的类别。Libsvm中的多类分类就是根据这个方法实现的。

补充:H-SVM:层次支持向量机(H-SVMs)。层次分类法首先将所有类别分成两个子类,再将子类进一步划分成两个次级子类,如此循环,直到得到一个单独的类别为止。

 

返回主目录(Spark MLlib算法思想总结)

 

2.2分类(classification)_第1张图片

你可能感兴趣的:(Spark,MLlib,机器学习算法,分类,Spark)