1.交叉验证
- 将全部训练集S分成k个不相交的子集,{S1,S2,...,Sk},假设训练样本有m个,那么每个子集有m/k个训练样例
- 对于模型集合M中的一个Mi,每次挑选k-1个子集{S1,S2,...,Sj-1,Sj+1,...,Sk}做训练,得到假设函数hij,用剩下一个子集Sj做训练,得到经验误差εij
- 计算Mi的平均经验误差,选出平均经验误差最小的模型Mi,用全部训练集S做训练得到最终的hi
2.异常检测
- 假设样本有n维,并且符合高斯分布,求得每一维的µj,σj2
- 对于新样本X直接计算其密度px
- 如果密度值小于某一阈值ε,则表示该样本异常
这里ε是通过交叉验证得到的,也就是说在进行异常检测时,前面的px的学习是用的无监督,后面的参数ε学习是用的有监督。因为在异常检测中,异常的样本数量非常少而正常样本数量非常多,属于不平衡二类问题,因此不足以学习到好的异常行为模型的参数,因为后面新来的异常样本可能完全是与训练样本中的模式不同。
3.生成模型和判别模型
- 判别模型:由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型。基本思想是有限样本条件下建立判别函数,不考虑样本的产生模型,直接研究预测模型。典型的判别模型包括k近邻,感知级,决策树,支持向量机等。
- 生成方法:由数据学习联合概率密度分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,P(Y|X)= P(X,Y)/ P(X)。基本思想是首先建立样本的联合概率概率密度模型P(X,Y),然后再得到后验概率P(Y|X),再利用它进行预测。常见的有隐马尔科夫模型,朴素贝叶斯模型,高斯混合模型,LDA等。
4.最大熵原理
熵定义的实际上是一个随机变量的不确定性,熵最大的时候,说明随机变量最不确定,换句话说,也就是随机变量最随机,对其行为做准确预测最困难。最大熵原理指出,当我们需要对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设。(不做主观假设这点很重要。)在这种情况下,概率分布最均匀,预测的风险最小。说白了,就是要保留全部的不确定性,将风险降到最小。
学习资料: