> For the complete documentation index, see [llms.txt](https://baozoulin.gitbook.io/neural-networks-and-deep-learning/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://baozoulin.gitbook.io/neural-networks-and-deep-learning/di-san-men-ke-jie-gou-hua-ji-qi-xue-xi-xiang-mu-structuring-machine-learning-projects/di-san-men-ke-structuring-machine-learning-projects/ml-strategy/21-jin-xing-wu-cha-fen-xi-ff08-carrying-out-error-analysis.md).

# 2.1 进行误差分析（Carrying out error analysis）

如果希望让学习算法能够胜任人类能做的任务，但学习算法还没有达到人类的表现，那么人工检查一下算法犯的错误可以了解接下来应该做什么，这个过程称为**错误分析**

假设正在调试猫分类器，取得了90%准确率，相当于10%错误，注意到算法将一些狗分类为猫，需要对模型的一些部分做相应调整，才能更好地提升分类的精度

![](/files/-Le0ce3IonhDHaQddQeC)

**收集错误样例**：

在开发集（测试集）中，获取大约100个错误标记的例子，然后手动检查，一次只看一个，看看开发集里有多少错误标记的样本是狗

* 100个数据中有5个样例是狗，如果对数据集的错误标记做努力去改进模型的精度，可以提升的上限是5%，仅可以达到9.5%的错误率，称为性能上限（ceiling on performance）。&#x20;

  这种情况下，这样耗时的努力方向不是很值得的事
* 100个数据中，有50多个样例是狗，改进数据集的错误标记是一个值得的改进方向，可以将模型的精确度提升至95

**并行分析**：

* 修改那些被分类成猫的狗狗图片标签
* 修改那些被错误分类的大型猫科动物，如：狮子，豹子等
* 提升模糊图片的质量

![](/files/-Le0ce3KTpGU0-0TvgJS)

为了并行的分析，可以建立表格来进行。在最左边，人工过一遍想分析的图像集，电子表格的每一列对应要评估的想法，如狗的问题，猫科动物的问题，模糊图像的问题，最后一列写评论

## ![](/files/-Le0ce3Ms3tIXlYQHq9L)

在这个步骤做到一半时，可能会发现其他错误类型，比如可能发现有Instagram滤镜，那些花哨的图像滤镜，干扰了分类器。在这种情况下可以在错误分析途中，增加一列多色滤镜 Instagram滤镜和Snapchat滤镜，再过一遍，并确定新的错误类型百分比，这个分析步骤的结果可以给出一个估计，是否值得去处理每个不同的错误类型

![](/files/-Le0ce3OWTNK_w608dsV)

可以把团队可以分成两个团队，其中一个改善大猫的识别，另一个改善模糊图片的识别

**总结：**

进行错误分析，应该找一组错误样本，可能在开发集或者测试集，观察错误标记的样本，看看**假阳性（false positives）**&#x548C;**假阴性（false negatives）**，统计属于不同错误类型的错误数量。在这个过程中，可能会得到启发，归纳出新的错误类型，通过统计不同错误标记类型的百分比，可以发现哪些问题需要优先解决
