OpenCV分类器学习心得
这篇文章是学习了斯坦福大学《机器学习》、《学习OpenCV》、OpenCV中文文档以及相关博客总结出来的,自认为已经了解各种分类器的工作原理(涉及数学公式推导部分还很薄弱)才敢动笔。不足之处感谢各位指点。
1. normal_bayes_classifier 朴素贝叶斯分类
OpenCV最简单的监督学习分类器
这个分类器模型是建立在每一个类别的特征向量服从正态分布的基础上的(据说不满足独立分布,效果也很好)。
整个分布函数被假设为一个高斯分布,每一类别一组系数。当给定了训练数据,算法将会估计每一个类别的向量均值和方差矩阵,然后根据这些进行预测。
特点:如果没有很多数据,该模型会比很多复杂的模型获得更好的性能,因为复杂的模型用了太多假设,以致产生欠拟合。
附贝叶斯公式:
2. k_nearest_neighbors(KNN) K近邻
这个算法首先贮藏所有的训练样本,然后通过分析(包括选举,计算加权和等方式)一个新样本周围K个最近邻,然后把新样本标记为在K近邻点中频率最高的类。
这种方法有时候被称作“基于样本的学习”,即为了预测,我们对于给定的输入搜索最近的已知其相应的特征向量。
特点:简单有效,但因为需要存储所有的训