朴素贝叶斯:
之前学习的机器学习算法(线性回归,logistic回归)都属于最大化Y的后验概率(判决学习算法),而高斯决策和朴素贝叶斯属于先最大化X的后验概率,然后根据贝叶斯公式计算Y的后验概率(生成学习算法)。
判决学习算法的主要特点是:对于预测值Y进行建模。
生成学习算法的主要特点是:对于不同的类别的特征分别进行建模。
生成学习算法进行训练时,步骤简单,根据最大似然估计就可以得到相应的模型参数;
在进行测试时,根据测试特征,计算P(X|Y=1),然后根据贝叶斯公式计算P(Y=1|X)。
朴素贝叶斯的特点在于:对于不同类别的特征X进行了强假设,X各个特征相互独立!
朴素贝叶斯进行文本分类时有两种策略:
(1)建立字典特征向量,根据文本中有无出现字典中的词,将文本转化为特征向量(伯努利分布);
(字典的建立包括两种策略:(1)根据所有的训练集文本中的词取并集;
(2)取出现次数最多的词,依次排序。
)
(2)上述建立方式忽略了词频的信息,需要改进。改进如下:同样建立字典,不同之处在于,特征向量的大小依赖于文本的长度N,也就是说,建立N维特征向量(N随文本变化),每一维特征取值为字典内的某一可能值(多项式分布)。
最后朴素贝叶斯算法需要拉普拉斯平滑,去除训练集中未曾发生事件带来的消极影响。
SVM:
最优间隔分类器:
我对最优间隔分类器的理解是,直接从分类的目的入手:寻找一个超平面可以将训练集进行完美分割,同时使得函数间隔或者几何间隔最大!(函数间隔和几何间隔的定义未写出)
假设函数简洁,代价函数为:max 几何间隔;约束条件为:几何间隔的定义,参数w的正则化。
由于此时的代价函数不是一个很好的凸函数,需要进行几次改进,得到很好的凸函数!
使用拉格朗日日乘法进行代价函数最优化,此时需要将原始代价函数转化为对偶代价函数再次进行拉格朗日最优化,目的就是为了简化计算(?),引出支持向量。
从对偶代价函数解出的w,可以看出,w只是对于部分Ai不为0的输入特征的线性组合,这部分输入特征也就是支持向量,同时也是几何间隔最小的那一部分训练集。
解出对偶代价函数之后,对于内积项进行核函数映射,此处核函数的作用有两点:(1)将低维特征向量映射到更高维度的特征向量空间;(2)进行特征向量之间相似度的比较。
引入了核函数之后的最优间隔分类器就成了比输入特征更高维度上的线性分类器,其转化为输入特征维度之后为非线性最优间隔分类器。
上述条件都是在假设训练集线性可分的条件下,为了使得分类器对于错误数据集有更好的鲁棒性,在上述的代价函数之上引入惩罚项,再次求解对应的对偶代价函数,W(a),使用SMO算法进行最优化求解。
SMO算法的思想主要包括:
(1)每次任意选取两个变量作为可变参数,其余变量作为固定参数;
(2)对上述两个变量进行W函数的最优化,一般为一个带双重约束条件的二次函数最优化问题;
(3)知道所有的ai满足约束条件时,达到收敛状态。
将计算出的A回带,得到W和b。
We done.