opencv机器学习

1.训练集与测试集

2. 监督数据与无监督数据

3.生成模型和判别模型

4.机器学习算法

Mahalanobis 通过除以协方差来对数据空间进行变换,然后再计算距离

K均值 非监督的聚类方法

正态/朴素贝叶斯分类器 通用分类器

决策树 一个判别分类器

Boosting 多个判别子分类器的组合

随机森林

人脸检测/Haar分类器

期望最大化(EM) 一种用于聚类的非监督生成算法

K近邻

神经网络

支持向量机

5.视觉中使用机器学习

考虑训练速度:最近邻法,正态贝叶斯,决策树

考虑内存: 决策树和神经网络

考虑判断速度:神经网络,正态贝叶斯和SVM

考虑精确度:boosting 和随机森林

6 .诊断机器学习中的问题

欠拟合

过拟合

7.评估机器学习结果的工具

交叉验证 k-1训练集 ,1测试集

画ROC曲线图和混淆矩阵 评估分类器参数的变化对分类器性能的影响

8.ML库的通用类

save() 存储训练模型

load() 加载训练模型

clear() 释放所有内存

train() 训练数据

predict() 预测一个新数据样本的标签或者值

注意:

a.训练的数据必须是32FC1(32位单通道)

b.只采用单通道

c.一般情况下矩阵以行排列数据样本,数据矩阵的构成方式(行,列)=(数据样本,特征变量)

CV_ROW_SAMPLE 特征向量以行排列(默认)

CV_ROW_SAMPLE 特征向量以行排列(默认)

d.reponse 可以是类别标签,也可以是连续性的数值(人体温度),返回值是一个一维向量,向量的每一个值对应一个输入数据样本

CV_VAR_CATEGORICAL 输出的 值是离散标签

CV_VAR_ORDERED 输出的值是数值类型标签

e.回归类型的算法只能处理有序输入

预测

训练迭代次数

cvTermCriteria()

9.Mahalanobis距离

是数据所在空间的协方差的度量

cvCalcCovarMatrix() 计算协方差矩阵

cvInvert() 计算协方差矩阵的逆矩阵

cvMahalanobis() 计算距离

10.K均值

cvKmeans2()

11.朴素贝叶斯分类

cvNormalBayesclassifier::train(trainData, response, var_idex = 0, sample_idx = 0) 只支持CV_ROW_SAMPLE类型数据

predict(sample, result = 0) result返回 对应的类别

如果只有一个输入向量,则只返回一个浮点数,result将被设为NULL

12.二叉决策树

三个最常用的度量:熵,吉尼系数,错分类

回归不纯度

分类不纯度

训练树:cvDTreeParame()

13.boost

14.随机森林

随机森林可以通过搜集很多树的子节点对各个类别的投票,然后选择获得最多投票的类别作为判断结果

15.人脸识别和Haar分类器

haar+adboost

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐