理解监督学习
监督学习目标 : 预测一些数据的标签或者目标值, 根据这些标签的本质, 监督学习可以划分以下两种形式:
- 分类 : 使用数据来预测类别的这些监督学习就叫分类
- 回归 : 使用数据预测真实值的这些监督学习就叫做回归
OpenCV中的监督学习
在OpenCV中, 所有的机器学习模型都派生自 cv::ml::StatModel基类, 也就是说, 如果我们想成为OpenCV的一个机器学习模型, 就必须提供StatModel让我们提供的功能。这包含一个训练模型的类函数(train), 以及一个用于评价模型表现的类函数 (calcError)
在OpenCV中构建一个机器学习模型总是遵照下面的逻辑:
- 初始化
- 设置参数
- 训练模型
- 预测新的模型
- 评估模型
使用评分函数评估模型性能 :
构建一个机器学习系统最重要的一个部分就是找到一个方法来评估模型预测的质量, 通常使用测试数据集中的数据来评估模型
在二分类任务中, 有以下常见的指标
- accuracy_score : 准确率, 准确率指的是在测试数据集中, 预测正确的数据点的数据量除以整个测试数据集的大小。比如在二分类检测猫狗图片任务中, 那些正确被分为猫狗图片的比例, 这是最基本的评分函数
计算方法 : (真正+真负)/数据点总数 - precision_score : 精确率 指的是分类器把包含狗的图片部分为猫的能力
计算方法 : 真正 / (真正+假正) - recall_socre ; 召回率 描述的是分类器从所有包含猫的图片中检索猫的能力, 也就是说, 在测试数据集中所有包含猫的图片中, 召回率是那些已经被正确识别为猫的图片的比例
计算方法 : 真正/(真正+假负)
对一个特定的数据点分类可能会有四种结果 :
空 | 是真的正样本 | 是真的负样本 |
---|---|---|
预测的正样本 | 真正 | 假正 |
预测的负样本 | 假负 | 真负 |