本文是对吴恩达《机器学习》的“ 126. 开发和评价一个异常检测系统”这一节的总结。
基本思路
该节视频的1:34时刻提到了:
如果有一些带标签的数据来指明哪些是异常样本,哪些是正常样本,这就是我们认为的能够评估异常检测的标准方法。
数据集的划分
该节视频的2:53时刻提到了:
交叉验证集(Cross validation set)和测试集(Test set)
接下来针对10000个正常样本和20个异常样本,给出了推荐的划分方法,详见下图
打对勾的是推荐的划分方法,打叉的是不推荐的。也就是说按照下边的方式划分:
正常样本数量 | 异常样本数量 | |
---|---|---|
训练集 | 6000 | 0 |
交叉验证集 | 2000 | 10 |
测试集 | 2000 | 10 |
参数的确定
该节视频的8:19时刻提到了:
参数(高斯分布的参数)
通过训练集数据训练得到参数。
坏的评价指标
该节视频的10:15时刻提到了:
分类正确率(classification accuracy)对于倾斜的数据不是一个好的评价指标
好的评价指标
该节视频的10:29时刻提到了:
倾斜的数据的好的评价指标有:
- True positive,false positive,true negative
- Precision/Recall
- F1-score
超参数的选择
该节视频的11:02时刻提到了:
ε \varepsilon ε的确定
选择不同的超参数 ε \varepsilon ε然后比较其在交叉验证集的评价指标,然后择优选用。
总结
- 将数据集划分为训练集、交叉验证集和测试集
- 使用训练集训练出合适的参数,参数一般指的是神经网络的权重等类似的量
- 在合理的评价指标下,使用交叉验证集选择合适的超参数,超参数一般指的是神经网络的层数、神经元个数等类似的量
- 在测试集上进行测试,看评价指标是否符合预期