此章一直搞不懂为么要用正态分布来表示属性,为么不能用其他的呢?
9.1 problem motivation
如下图
9.2高斯分布
此处有个注意点,即标准误standard error 标准差standard deviation,前者=后者/n^1/2)
9.3算法
密度估计
此间假设,属性之间相互独立,但实际结果是,即使不独立也可以取得较好的成效
接下来是完全步骤呢
这个epsilon很重要,相当于阈值,那么阈值是怎样设定的呢
9.4开发与评估一个异常检测系统
先前我们的数据集并没有类标签,即无监督学习,现在我们假设有了一些类标签,then开始行动,If you do not have any labeled data (or if all your data has label y=0 ), then is is still possible to learn p(x) , but it may be harder to evaluate the system or choose a good value of ϵ .
NG老师反复强调将用相同的数据来表示测试集与验证集并非是一个好的主意,虽然在现实中也有很多人在用这种方法,但不推荐
此处基于异常值过少,非对称二元y值,所以用正确率来评判模型好坏并不现实,因为pp太大
此处主要有三个度量来评估模型
1.TPR 即模型正确预测的正样本的比例;FNR 即被预测为负类的正样本比例
2.灵敏性p (precision)被正确分类的正样本占被分类为正样本的比例 ,精度r(recall)即被正确分类的正样本占总正样本的比例
3.F1度量2rp/(r+p), Fb度量为(b^2+1)rp/(r+(b^2 )p),当b=1时,两者相等
使用时用不同特征及epsilon来在验证集上验证,选出最大的那个,最后再用测试集来测试误差
9.5异常值检测与监督学习
首先来看一下两种方法间的比较,前者适用于只有少数异常值,所以用正常值来训练,异常值来检验,而后者适用于较大量异常值,所以用异常值来训练,如下
故相应用途也不一样
9.7属性的选择
在实际数据处理的时候,可能属性值并非为正态分布(即高斯分布),这个时候就要用到转换函数,如log(x+c) 或是x^n(n可为任意数),再用hist(x,m)来观察,m为分的区间数
这就是NG老师经常做的误差分析
如下图,经常出现的状况是正常值和异常值的p都较大,这个时候创建一个新属性will be helpful(如右下)
具体如下这个例子一样,增加与结果相关的属性
9.8多元高斯分布
有一些好处,也有一些不好的地方,可以抓取一些初步的算法难以找到的异常值
u的话代表质心位置,矩阵左上跟右下代表圆半径,右上跟左下代表偏的方向,为正,/,为负,\ 中间有个协方差矩阵,多看下,哈哈哈
9.9使用高斯分布来进行异常检测
模型的公式
具体的步骤
当属性与属性之间相互独立的时候,多元模型则与一元模型一一对应,此时,一元即是多元的特殊化见下图,两者区别如下呢