算法小结

基础知识
损失函数:0-1损失函数、平方损失函数、绝对损失函数、对数损失函数:-logP(Y|X)  
平均损失=>经验风险  当N趋于无穷,经验风险趋于期望风险  

经验风险最小化=>极大似然估计  
结构风险最小化=>正则化
解决过拟合:
正则化:1、L1范数:各元素绝对值之和;2、L2范数:各元素平方和的1/2次方    
交叉验证
生成模型和判别模型
生成模型:学习联合概率分布,求出条件概率分布的作为预测的模型,例如朴素贝叶斯
判别模型:直接学习决策函数f(X)或者条件概率分布作为预测的模型,例如KNN、感知机、决策树、逻辑回归等
感知机
f(x) = sign(wx + b)
经验风险=>误分类点到超平面的总距离:-y(wx + b)对误分类点求和
对于线性可分数据集算法一定收敛,但是初始条件不同最后的结果也可能不同
KNN
K值选择:K越小模型越复杂,也越受噪声数据的影响,但是准确性高;一般选较小的K,然后交叉验证
距离度量:欧氏距离、曼哈顿距离等
分类决策规则:多数表决等价于经验风险最小化
kd树适用于样本数量远大于空间维度的数据集
朴素贝叶斯
朴素即条件相互独立
学习先验概率和条件概率--P(Y),P(X|Y),预测后验概率P(Y|X)
后验概率最大化等价于经验风险最小化
拉普拉斯平滑:将先验概率和条件概率都加上一个常数防止为0
决策树
特征选择:ID3-信息增益(倾向于选取值个数多的特征)/ID4.5-信息增益比
决策树修建修剪:若减掉某分支以后损失函数比原来小则可以修剪
回归树:最小平方误差寻找特征和切分点
分类树:根据基尼指数划分寻找特征和切分点
逻辑回归
P(Y=1|x) = 1 / (1 + e^(-z))利用最大似然估计估计参数,利用梯度下降法求解
支持向量机
输入空间->特征空间 使几何间隔最大,解唯一
函数间隔:y(wx + b)  几何间隔:y(wx + b) / ||w||
硬间隔:
原始问题:取函数间隔为1,求min(w,b) 1/2 * ||w||^2,使y(wx + b) - 1 >= 0,有限制条件的最优化求解使用拉格朗日函数需要min <=  则原始问题是min(w,b)max(a)L,对偶问题是max(a)min(w,b)L。先求对偶问题的a向量,然后代入求原始问题的w,b,a > 0就是支持向量(ay = 0)

软间隔:
引入松弛变量:min(w,b) 1/2 * ||w||^2 + Cl(求和) 使y(wx + b) + l - 1 >= 0和硬间隔求解方式一样

核技巧:
将线性不可分空间映射到线性可分空间上,常用核函数:多项式核函数、高斯核函数
提升方法
一个概念能被多项式学习算法学习并且准确率很高,那么称它是强可学习的,准确率仅比随机猜测略好,就是弱可学习的,强可学习是弱可学习的充分必要条件。
AdaBoost算法:每一轮提高前一轮分类器错误分类样本的权值,使得后面的分类器更加关注前面分错的样本,具体分类采用加权多数表决的方法(每个分类器也会有自己的权值)。
提升树(GBDT):通过加性树模型,每次通过平方误差找到最合适的切分点,然后以前一次模型的残差作为训练目标,最终当误差达到要求将所有的模型加性求和(对于平方损失函数来说,残差即负梯度,在此方向上下降最快)
原文地址:https://www.cnblogs.com/LeonNew/p/6489111.html