第一部分 异常检测
这一部分实现异常检测算法,检测服务器的异常行为。
1.高斯分布
使用高斯模型来检测数据集中的异常数据。
公式:
μ:均值;σ^2:方差
实现代码计算上述两个参数,需要注意的是在octave中,计算方差时,分母使用m-1,而不是m
mu = sum(X) / m;
sigma2 = sum((X - mu) .^ 2) / (m-1);
2.选择阈值ε
确定哪些数据异常的一种方法是根据交叉验证集选择一个阈值。可以通过交叉验证集的F1分数实现算法来选择阈值。
F1分数由精确度(prec)和召回率(rec)计算得来:
精确度和召回率的计算公式:
tp:实际为正样本,分类结果为正样本(真正)
fp:实际为负样本,分类结果为正样本(假正)
fn:实际为正样本,分类结果为负样本(假负)
这里我们把异常数据标记为y=1,也就是正样本;正常的数据标记为y=0,为负样本。
bestEpsilon = 0;
bestF1 = 0;
F1 = 0;
stepsize = (max(pval) -