类 SVM
- java.lang.Object
-
- org.opencv.core.Algorithm
-
- org.opencv.ml.StatModel
-
- org.opencv.ml.SVM
-
public class SVM extends StatModel
支持向量机。参见:REF: ml_intro_svm
-
-
字段摘要
字段 修饰符和类型 字段 描述 static int
C
static int
C_SVC
static int
CHI2
static int
COEF
static int
CUSTOM
static int
DEGREE
static int
EPS_SVR
static int
GAMMA
static int
INTER
static int
LINEAR
static int
NU
static int
NU_SVC
static int
NU_SVR
static int
ONE_CLASS
static int
P
static int
POLY
static int
RBF
static int
SIGMOID
-
继承自类 org.opencv.ml 的字段StatModel
COMPRESSED_INPUT,PREPROCESSED_INPUT,RAW_OUTPUT,UPDATE_MODEL
-
-
构造函数摘要
构造函数 修饰符 构造函数 描述 protected
SVM(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static SVM
__fromPtr__(long addr)
static SVM
create()
创建空模型。protected void
finalize()
double
getC()
参见:setCMat
getClassWeights()
参见:setClassWeightsdouble
getCoef0()
参见:setCoef0double
getDecisionFunction(int i, Mat alpha, Mat svidx)
检索决策函数static ParamGrid
getDefaultGridPtr(int param_id)
为 %SVM 参数生成网格。double
getDegree()
参见:setDegreedouble
getGamma()
参见:setGammaint
getKernelType()
%SVM 内核的类型。double
getNu()
参见:setNudouble
getP()
参见:setPMat
getSupportVectors()
检索所有支持向量。该方法将所有支持向量作为浮点矩阵返回,其中支持向量存储为矩阵行。TermCriteria
getTermCriteria()
参见:setTermCriteriaint
getType()
参见:setTypeMat
getUncompressedSupportVectors()
检索线性 %SVM 的所有未压缩支持向量。该方法返回线性 %SVM 的所有未压缩支持向量,从中导出用于预测的压缩支持向量。static SVM
load(java.lang.String filepath)
从文件中加载并创建一个序列化的 svm。使用 SVM::save 将 SVM 序列化并存储到磁盘。void
setC(double val)
getC 参见:getCvoid
setClassWeights(Mat val)
getClassWeights 参见:getClassWeightsvoid
setCoef0(double val)
getCoef0 参见:getCoef0void
setDegree(double val)
getDegree 参见:getDegreevoid
setGamma(double val)
getGamma 参见:getGammavoid
setKernel(int kernelType)
用预定义内核之一初始化。void
setNu(double val)
getNu 参见:getNuvoid
setP(double val)
getP 参见:getPvoid
setTermCriteria(TermCriteria val)
getTermCriteria 参见:getTermCriteriavoid
setType(int val)
getType 参见:getTypeboolean
trainAuto(Mat samples, int layout, Mat responses)
使用最佳参数训练 %SVM。boolean
trainAuto(Mat samples, int layout, Mat responses, int kFold)
使用最佳参数训练 %SVM。boolean
trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid)
使用最佳参数训练 %SVM。boolean
trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid)
使用最佳参数训练 %SVM。boolean
trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid)
使用最佳参数训练 %SVM。boolean
trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid)
使用最佳参数训练 %SVM。boolean
trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid, ParamGrid coeffGrid)
使用最佳参数训练 %SVM。boolean
trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid, ParamGrid coeffGrid, ParamGrid degreeGrid)
使用最佳参数训练 %SVM。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。-
继承方法 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
- 另请参见
- 常量字段值
-
LINEAR
public static final int LINEAR
- 另请参见
- 常量字段值
-
POLY
public static final int POLY
- 另请参见
- 常量字段值
-
RBF
public static final int RBF
- 另请参见
- 常量字段值
-
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
public static final int NU
- 另请参见
- 常量字段值
-
COEF
public static final int COEF
- 另请参见
- 常量字段值
-
DEGREE
public static final int DEGREE
- 另请参见
- 常量字段值
-
C_SVC
public static final int C_SVC
- 另请参见
- 常量字段值
-
NU_SVC
public static final int NU_SVC
- 另请参见
- 常量字段值
-
ONE_CLASS
public static final int ONE_CLASS
- 另请参见
- 常量字段值
-
EPS_SVR
public static final int EPS_SVR
- 另请参见
- 常量字段值
-
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 参见: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
- 如果为真且问题是二类分类,则该方法创建更平衡的交叉验证子集,即子集中的类别比例接近于整个训练数据集中的比例。该方法通过选择最佳参数 C、gamma、p、nu、coef0、degree来自动训练 SVM 模型。当测试集误差的交叉验证估计值最小化时,参数被认为是最优的。此函数仅使用 SVM::getDefaultGrid 进行参数优化,因此仅提供基本的参数选项。此函数适用于分类 (SVM::C_SVC 或 SVM::NU_SVC) 和回归 (SVM::EPS_SVR 或 SVM::NU_SVR)。如果是 SVM::ONE_CLASS,则不进行优化,并执行带有 params 中指定参数的常规 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,则不进行优化,并执行带有 params 中指定参数的常规 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,则不进行优化,并执行带有 params 中指定参数的常规 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,则不进行优化,并执行带有 params 中指定参数的常规 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,则不进行优化,并执行具有params中指定参数的常规%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,则不进行优化,并执行具有params中指定参数的常规%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,则不进行优化,并执行具有params中指定参数的常规%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,则不进行优化,并执行具有params中指定参数的常规%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,则不进行优化,并执行具有params中指定参数的常规%SVM。- 返回值
- 自动生成
-
getSupportVectors
public Mat getSupportVectors()
检索所有支持向量。该方法将所有支持向量作为浮点矩阵返回,其中支持向量存储为矩阵行。- 返回值
- 自动生成
-
getUncompressedSupportVectors
public Mat getUncompressedSupportVectors()
检索线性%SVM的所有未压缩支持向量。该方法返回线性%SVM的所有未压缩支持向量,压缩支持向量(用于预测)就是由此导出的。它们以浮点矩阵的形式返回,其中支持向量存储为矩阵行。- 返回值
- 自动生成
-
getDecisionFunction
public double getDecisionFunction(int i, Mat alpha, Mat svidx)
检索决策函数- 参数
i
- 决策函数的索引。如果解决的问题是回归、一类或二类分类,则只有一个决策函数,索引应始终为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的文件路径- 返回值
- 自动生成
-
-