类 SVM
- java.lang.Object
-
- org.opencv.core.Algorithm
-
- org.opencv.ml.StatModel
-
- org.opencv.ml.SVM
-
public class SVM extends StatModel
支持向量机。参见:参考文献:ml_intro_svm
-
-
字段摘要
字段 修饰符和类型 字段 描述 static intCstatic intC-支持向量分类 (C_SVC)static int卡方核 (CHI2)static int系数 (COEF)static intCUSTOMstatic int度 (DEGREE)static intEpsilon-支持向量回归 (EPS_SVR)static int伽马 (GAMMA)static int交叉核 (INTER)static int线性static intNu (NU)static intNu-支持向量分类 (NU_SVC)static intNu-支持向量回归 (NU_SVR)static int一类 SVM (ONE_CLASS)static intPstatic int多项式核 (POLY)static int径向基函数核 (RBF)static intSigmoid核 (SIGMOID)-
从类 org.opencv.ml.StatModel 继承的字段
COMPRESSED_INPUT, PREPROCESSED_INPUT, RAW_OUTPUT, UPDATE_MODEL
-
-
构造函数摘要
构造函数 修饰符 构造函数 描述 保护SVM(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static SVM__fromPtr__(long addr)static SVMcreate()创建空模型。protected voidfinalize()doublegetC()参见:setCMatgetClassWeights()参见:setClassWeightsdoublegetCoef0()参见:setCoef0doublegetDecisionFunction(int i, Mat alpha, Mat svidx)检索决策函数static ParamGridgetDefaultGridPtr(int param_id)为 %SVM 参数生成网格。doublegetDegree()参见:setDegreedoublegetGamma()参见:setGammaintgetKernelType()%SVM 核的类型。doublegetNu()参见:setNudoublegetP()参见:setPMatgetSupportVectors()检索所有支持向量。此方法以浮点矩阵的形式返回所有支持向量,其中支持向量存储为矩阵行。TermCriteriagetTermCriteria()参见:setTermCriteriaintgetType()参见:setTypeMatgetUncompressedSupportVectors()检索线性 %SVM 的所有未压缩支持向量。此方法返回线性 %SVM 的所有未压缩支持向量,用于预测的压缩支持向量即由此派生。static SVMload(java.lang.String filepath)从文件中加载并创建一个序列化的 SVM。使用 SVM::save 将 SVM 序列化并存储到磁盘。voidsetC(double val)getC 参见:getCvoidsetClassWeights(Mat val)getClassWeights 参见:getClassWeightsvoidsetCoef0(double val)getCoef0 参见:getCoef0voidsetDegree(double val)getDegree 参见:getDegreevoidsetGamma(double val)getGamma。参见:getGammavoidsetKernel(int kernelType)使用预定义核之一进行初始化。voidsetNu(double val)getNu 参见:getNuvoidsetP(double val)getP SEE: getPvoidsetTermCriteria(TermCriteria val)getTermCriteria 参见:getTermCriteriavoidsetType(int val)getType 参见:getTypebooleantrainAuto(Mat samples, int layout, Mat responses)使用最优参数训练 %SVMbooleantrainAuto(Mat samples, int layout, Mat responses, int kFold)使用最优参数训练 %SVMbooleantrainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid)使用最优参数训练 %SVMbooleantrainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid)使用最优参数训练 %SVMbooleantrainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid)使用最优参数训练 %SVMbooleantrainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid)使用最优参数训练 %SVMbooleantrainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid, ParamGrid coeffGrid)使用最优参数训练 %SVMbooleantrainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid, ParamGrid coeffGrid, ParamGrid degreeGrid)使用最优参数训练 %SVMbooleantrainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid, ParamGrid coeffGrid, ParamGrid degreeGrid, boolean balanced)使用最优参数训练 %SVM-
从类 org.opencv.ml.StatModel 继承的方法
calcError, empty, getVarCount, isClassifier, isTrained, predict, predict, predict, train, train, train
-
从类 org.opencv.core.Algorithm 继承的方法
clear, getDefaultName, getNativeObjAddr, save
-
-
-
-
字段详细信息
-
CUSTOM
public static final int CUSTOM
- 参见
- 常量字段值
-
线性
public static final int LINEAR
- 参见
- 常量字段值
-
多项式核 (POLY)
public static final int POLY
- 参见
- 常量字段值
-
径向基函数核 (RBF)
public static final int RBF
- 参见
- 常量字段值
-
Sigmoid核 (SIGMOID)
public static final int SIGMOID
- 参见
- 常量字段值
-
卡方核 (CHI2)
public static final int CHI2
- 参见
- 常量字段值
-
交叉核 (INTER)
public static final int INTER
- 参见
- 常量字段值
-
C
public static final int C
- 参见
- 常量字段值
-
伽马 (GAMMA)
public static final int GAMMA
- 参见
- 常量字段值
-
P
public static final int P
- 参见
- 常量字段值
-
Nu (NU)
public static final int NU
- 参见
- 常量字段值
-
系数 (COEF)
public static final int COEF
- 参见
- 常量字段值
-
度 (DEGREE)
public static final int DEGREE
- 参见
- 常量字段值
-
C-支持向量分类 (C_SVC)
public static final int C_SVC
- 参见
- 常量字段值
-
Nu-支持向量分类 (NU_SVC)
public static final int NU_SVC
- 参见
- 常量字段值
-
一类 SVM (ONE_CLASS)
public static final int ONE_CLASS
- 参见
- 常量字段值
-
Epsilon-支持向量回归 (EPS_SVR)
public static final int EPS_SVR
- 参见
- 常量字段值
-
Nu-支持向量回归 (NU_SVR)
public static final int NU_SVR
- 参见
- 常量字段值
-
-
方法详细信息
-
__fromPtr__
public static SVM __fromPtr__(long addr)
-
getType
public int getType()
参见:setType- 返回
- 自动生成
-
setType
public void setType(int val)
getType 参见:getType- 参数
val- 自动生成
-
getGamma
public double getGamma()
参见:setGamma- 返回
- 自动生成
-
setGamma
public void setGamma(double val)
getGamma。参见:getGamma- 参数
val- 自动生成
-
getCoef0
public double getCoef0()
参见:setCoef0- 返回
- 自动生成
-
setCoef0
public void setCoef0(double val)
getCoef0 参见:getCoef0- 参数
val- 自动生成
-
getDegree
public double getDegree()
参见:setDegree- 返回
- 自动生成
-
setDegree
public void setDegree(double val)
getDegree 参见:getDegree- 参数
val- 自动生成
-
getC
public double getC()
参见:setC- 返回
- 自动生成
-
setC
public void setC(double val)
getC 参见:getC- 参数
val- 自动生成
-
getNu
public double getNu()
参见:setNu- 返回
- 自动生成
-
setNu
public void setNu(double val)
getNu 参见:getNu- 参数
val- 自动生成
-
getP
public double getP()
参见:setP- 返回
- 自动生成
-
setP
public void setP(double val)
getP SEE: getP- 参数
val- 自动生成
-
getClassWeights
public Mat getClassWeights()
参见:setClassWeights- 返回
- 自动生成
-
setClassWeights
public void setClassWeights(Mat val)
getClassWeights 参见:getClassWeights- 参数
val- 自动生成
-
getTermCriteria
public TermCriteria getTermCriteria()
参见:setTermCriteria- 返回
- 自动生成
-
setTermCriteria
public void setTermCriteria(TermCriteria val)
getTermCriteria 参见:getTermCriteria- 参数
val- 自动生成
-
getKernelType
public int getKernelType()
%SVM 核的类型。参见 SVM::KernelTypes。默认值为 SVM::RBF。- 返回
- 自动生成
-
setKernel
public void setKernel(int kernelType)
使用预定义核之一进行初始化。参见 SVM::KernelTypes。- 参数
kernelType- 自动生成
-
trainAuto
public boolean trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid, ParamGrid coeffGrid, ParamGrid degreeGrid, boolean balanced)
使用最优参数训练 %SVM- 参数
samples- 训练样本layout- 参见 ml::SampleTypes。responses- 与训练样本关联的响应向量。kFold- 交叉验证参数。训练集被划分为 kFold 个子集。其中一个子集用于测试模型,其余子集构成训练集。因此,%SVM 算法是Cgrid- C 的网格gammaGrid- gamma 的网格pGrid- p 的网格nuGrid- nu 的网格coeffGrid- coeff 的网格degreeGrid- degree 的网格balanced- 如果为 true 且问题是二分类,则此方法创建更平衡的交叉验证子集,即子集中类别之间的比例与整个训练数据集中此类比例相近。此方法通过选择最优参数 C、gamma、p、nu、coef0、degree 自动训练 %SVM 模型。当测试集误差的交叉验证估计值最小时,参数被认为是最佳的。此函数仅使用 SVM::getDefaultGrid 进行参数优化,因此只提供基本的参数选项。此函数适用于分类(SVM::C_SVC 或 SVM::NU_SVC)以及回归(SVM::EPS_SVR 或 SVM::NU_SVR)。如果是 SVM::ONE_CLASS,则不进行优化,并执行使用指定参数的常规 %SVM。- 返回
- 自动生成
-
trainAuto
public boolean trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid, ParamGrid coeffGrid, ParamGrid degreeGrid)
使用最优参数训练 %SVM- 参数
samples- 训练样本layout- 参见 ml::SampleTypes。responses- 与训练样本关联的响应向量。kFold- 交叉验证参数。训练集被划分为 kFold 个子集。其中一个子集用于测试模型,其余子集构成训练集。因此,%SVM 算法是Cgrid- C 的网格gammaGrid- gamma 的网格pGrid- p 的网格nuGrid- nu 的网格coeffGrid- coeff 的网格degreeGrid- degree 的网格。平衡的交叉验证子集,即子集中类别之间的比例与整个训练数据集中此类比例相近。此方法通过选择最优参数 C、gamma、p、nu、coef0、degree 自动训练 %SVM 模型。当测试集误差的交叉验证估计值最小时,参数被认为是最佳的。此函数仅使用 SVM::getDefaultGrid 进行参数优化,因此只提供基本的参数选项。此函数适用于分类(SVM::C_SVC 或 SVM::NU_SVC)以及回归(SVM::EPS_SVR 或 SVM::NU_SVR)。如果是 SVM::ONE_CLASS,则不进行优化,并执行使用指定参数的常规 %SVM。- 返回
- 自动生成
-
trainAuto
public boolean trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid, ParamGrid coeffGrid)
使用最优参数训练 %SVM- 参数
samples- 训练样本layout- 参见 ml::SampleTypes。responses- 与训练样本关联的响应向量。kFold- 交叉验证参数。训练集被划分为 kFold 个子集。其中一个子集用于测试模型,其余子集构成训练集。因此,%SVM 算法是Cgrid- C 的网格gammaGrid- gamma 的网格pGrid- p 的网格nuGrid- nu 的网格coeffGrid- coeff 的网格。平衡的交叉验证子集,即子集中类别之间的比例与整个训练数据集中此类比例相近。此方法通过选择最优参数 C、gamma、p、nu、coef0、degree 自动训练 %SVM 模型。当测试集误差的交叉验证估计值最小时,参数被认为是最佳的。此函数仅使用 SVM::getDefaultGrid 进行参数优化,因此只提供基本的参数选项。此函数适用于分类(SVM::C_SVC 或 SVM::NU_SVC)以及回归(SVM::EPS_SVR 或 SVM::NU_SVR)。如果是 SVM::ONE_CLASS,则不进行优化,并执行使用指定参数的常规 %SVM。- 返回
- 自动生成
-
trainAuto
public boolean trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid)
使用最优参数训练 %SVM- 参数
samples- 训练样本layout- 参见 ml::SampleTypes。responses- 与训练样本关联的响应向量。kFold- 交叉验证参数。训练集被划分为 kFold 个子集。其中一个子集用于测试模型,其余子集构成训练集。因此,%SVM 算法是Cgrid- C 的网格gammaGrid- gamma 的网格pGrid- p 的网格nuGrid- nu 的网格。平衡的交叉验证子集,即子集中类别之间的比例与整个训练数据集中此类比例相近。此方法通过选择最优参数 C、gamma、p、nu、coef0、degree 自动训练 %SVM 模型。当测试集误差的交叉验证估计值最小时,参数被认为是最佳的。此函数仅使用 SVM::getDefaultGrid 进行参数优化,因此只提供基本的参数选项。此函数适用于分类(SVM::C_SVC 或 SVM::NU_SVC)以及回归(SVM::EPS_SVR 或 SVM::NU_SVR)。如果是 SVM::ONE_CLASS,则不进行优化,并执行使用指定参数的常规 %SVM。- 返回
- 自动生成
-
trainAuto
public boolean trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid)
使用最优参数训练 %SVM- 参数
samples- 训练样本layout- 参见 ml::SampleTypes。responses- 与训练样本关联的响应向量。kFold- 交叉验证参数。训练集被划分为 kFold 个子集。其中一个子集用于测试模型,其余子集构成训练集。因此,%SVM 算法是Cgrid- C 的网格gammaGrid- gamma 的网格pGrid- p 的网格。平衡的交叉验证子集,即子集中类别之间的比例与整个训练数据集中此类比例相近。此方法通过选择最优参数 C、gamma、p、nu、coef0、degree 自动训练 %SVM 模型。当测试集误差的交叉验证估计值最小时,参数被认为是最佳的。此函数仅使用 SVM::getDefaultGrid 进行参数优化,因此只提供基本的参数选项。此函数适用于分类(SVM::C_SVC 或 SVM::NU_SVC)以及回归(SVM::EPS_SVR 或 SVM::NU_SVR)。如果是 SVM::ONE_CLASS,则不进行优化,并执行使用指定参数的常规 %SVM。- 返回
- 自动生成
-
trainAuto
public boolean trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid)
使用最优参数训练 %SVM- 参数
samples- 训练样本layout- 参见 ml::SampleTypes。responses- 与训练样本关联的响应向量。kFold- 交叉验证参数。训练集被划分为 kFold 个子集。其中一个子集用于测试模型,其余子集构成训练集。因此,%SVM 算法是Cgrid- C 的网格gammaGrid- gamma 的网格。平衡的交叉验证子集,即子集中类别之间的比例与整个训练数据集中此类比例相近。此方法通过选择最优参数 C、gamma、p、nu、coef0、degree 自动训练 %SVM 模型。当测试集误差的交叉验证估计值最小时,参数被认为是最佳的。此函数仅使用 SVM::getDefaultGrid 进行参数优化,因此只提供基本的参数选项。此函数适用于分类(SVM::C_SVC 或 SVM::NU_SVC)以及回归(SVM::EPS_SVR 或 SVM::NU_SVR)。如果是 SVM::ONE_CLASS,则不进行优化,并执行使用指定参数的常规 %SVM。- 返回
- 自动生成
-
trainAuto
public boolean trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid)
使用最优参数训练 %SVM- 参数
samples- 训练样本layout- 参见 ml::SampleTypes。responses- 与训练样本关联的响应向量。kFold- 交叉验证参数。训练集被划分为 kFold 个子集。其中一个子集用于测试模型,其余子集构成训练集。因此,%SVM 算法是Cgrid- C 的网格。平衡的交叉验证子集,即子集中类别之间的比例与整个训练数据集中此类比例相近。此方法通过选择最优参数 C、gamma、p、nu、coef0、degree 自动训练 %SVM 模型。当测试集误差的交叉验证估计值最小时,参数被认为是最佳的。此函数仅使用 SVM::getDefaultGrid 进行参数优化,因此只提供基本的参数选项。此函数适用于分类(SVM::C_SVC 或 SVM::NU_SVC)以及回归(SVM::EPS_SVR 或 SVM::NU_SVR)。如果是 SVM::ONE_CLASS,则不进行优化,并执行使用指定参数的常规 %SVM。- 返回
- 自动生成
-
trainAuto
public boolean trainAuto(Mat samples, int layout, Mat responses, int kFold)
使用最优参数训练 %SVM- 参数
samples- 训练样本layout- 参见 ml::SampleTypes。responses- 与训练样本关联的响应向量。kFold- 交叉验证参数。训练集被划分为 kFold 个子集。其中一个子集用于测试模型,其余子集构成训练集。因此,%SVM 算法是平衡的交叉验证子集,即子集中类别之间的比例与整个训练数据集中此类比例相近。此方法通过选择最优参数 C、gamma、p、nu、coef0、degree 自动训练 %SVM 模型。当测试集误差的交叉验证估计值最小时,参数被认为是最佳的。此函数仅使用 SVM::getDefaultGrid 进行参数优化,因此只提供基本的参数选项。此函数适用于分类(SVM::C_SVC 或 SVM::NU_SVC)以及回归(SVM::EPS_SVR 或 SVM::NU_SVR)。如果是 SVM::ONE_CLASS,则不进行优化,并执行使用指定参数的常规 %SVM。- 返回
- 自动生成
-
trainAuto
public boolean trainAuto(Mat samples, int layout, Mat responses)
使用最优参数训练 %SVM- 参数
samples- 训练样本layout- 参见 ml::SampleTypes。responses- 与训练样本关联的响应向量。此子集用于测试模型,其他子集构成训练集。因此,%SVM 算法是平衡的交叉验证子集,即子集中类别之间的比例与整个训练数据集中此类比例相近。此方法通过选择最优参数 C、gamma、p、nu、coef0、degree 自动训练 %SVM 模型。当测试集误差的交叉验证估计值最小时,参数被认为是最佳的。此函数仅使用 SVM::getDefaultGrid 进行参数优化,因此只提供基本的参数选项。此函数适用于分类(SVM::C_SVC 或 SVM::NU_SVC)以及回归(SVM::EPS_SVR 或 SVM::NU_SVR)。如果是 SVM::ONE_CLASS,则不进行优化,并执行使用指定参数的常规 %SVM。- 返回
- 自动生成
-
getSupportVectors
public Mat getSupportVectors()
检索所有支持向量。此方法以浮点矩阵的形式返回所有支持向量,其中支持向量存储为矩阵行。- 返回
- 自动生成
-
getUncompressedSupportVectors
public Mat getUncompressedSupportVectors()
检索线性 %SVM 的所有未压缩支持向量。此方法返回线性 %SVM 的所有未压缩支持向量,用于预测的压缩支持向量即由此派生。它们以浮点矩阵形式返回,其中支持向量存储为矩阵行。- 返回
- 自动生成
-
getDecisionFunction
public double getDecisionFunction(int i, Mat alpha, Mat svidx)检索决策函数- 参数
i- 决策函数的索引。如果解决的问题是回归、1 类或 2 类分类,则只有一个决策函数,索引应始终为 0。否则,在 N 类分类的情况下,将有 \(N(N-1)/2\) 个决策函数。alpha- 权重(对应于不同支持向量)的可选输出向量。在线性 %SVM 的情况下,所有 alpha 都将为 1。svidx- 支持向量矩阵(可通过 SVM::getSupportVectors 检索)中支持向量索引的可选输出向量。在线性 %SVM 的情况下,每个决策函数由一个“压缩”支持向量组成。此方法返回决策函数的 rho 参数,这是一个从核响应的加权和中减去的标量。- 返回
- 自动生成
-
getDefaultGridPtr
public static ParamGrid getDefaultGridPtr(int param_id)
为 %SVM 参数生成网格。- 参数
param_id- %SVM 参数 ID,必须是 SVM::ParamTypes 之一。网格是为此 ID 对应的参数生成的。此函数为 %SVM 算法的指定参数生成一个网格指针。此网格可以传递给函数 SVM::trainAuto。- 返回
- 自动生成
-
create
public static SVM create()
创建空模型。使用 StatModel::train 训练模型。由于 %SVM 有多个参数,您可能希望找到最适合您问题的参数,这可以通过 SVM::trainAuto 完成。- 返回
- 自动生成
-
load
public static SVM load(java.lang.String filepath)
从文件中加载并创建一个序列化的 SVM。使用 SVM::save 将 SVM 序列化并存储到磁盘。通过使用文件路径调用此函数,可以再次从此文件加载 SVM。- 参数
filepath- 序列化 SVM 的路径- 返回
- 自动生成
-
-