OpenCV 4.10.0
开源计算机视觉
正在加载...
正在搜索...
没有匹配项
公共成员函数 | 静态公共成员函数 | 所有成员列表
cv::ml::TrainData 类参考抽象

封装训练数据的类。 更多...

#include <opencv2/ml.hpp>

cv::ml::TrainData 的协作图

公共成员函数

virtual ~TrainData ()
 
virtual int getCatCount (int vi) const =0
 
virtual Mat getCatMap () const =0
 
virtual Mat getCatOfs () const =0
 
virtual Mat getClassLabels () const =0
 返回类标签向量。
 
virtual Mat getDefaultSubstValues () const =0
 
virtual int getLayout () const =0
 
virtual Mat getMissing () const =0
 
virtual int getNAllVars () const =0
 
virtual void getNames (std::vector< String > &names) const =0
 返回在 loadFromCSV() 中捕获的符号名称向量
 
virtual Mat getNormCatResponses () const =0
 
virtual void getNormCatValues (int vi, InputArray sidx, int *values) const =0
 
virtual int getNSamples () const =0
 
virtual int getNTestSamples () const =0
 
virtual int getNTrainSamples () const =0
 
virtual int getNVars () const =0
 
virtual Mat getResponses () const =0
 
virtual int getResponseType () const =0
 
virtual void getSample (InputArray varIdx, int sidx, float *buf) const =0
 
virtual Mat getSamples () const =0
 
virtual Mat getSampleWeights () const =0
 
virtual Mat getTestNormCatResponses () const =0
 
virtual Mat getTestResponses () const =0
 
virtual Mat getTestSampleIdx () const =0
 
virtual Mat getTestSamples () const =0
 返回测试样本矩阵。
 
virtual Mat getTestSampleWeights () const =0
 
virtual Mat getTrainNormCatResponses () const =0
 返回归一化分类响应向量。
 
virtual Mat getTrainResponses () const =0
 返回响应向量。
 
virtual Mat getTrainSampleIdx () const =0
 
virtual Mat getTrainSamples (int layout=ROW_SAMPLE, bool compressSamples=true, bool compressVars=true) const =0
 返回训练样本矩阵。
 
virtual Mat getTrainSampleWeights () const =0
 
virtual void getValues (int vi, InputArray sidx, float *values) const =0
 
virtual Mat getVarIdx () const =0
 
virtual Mat getVarSymbolFlags () const =0
 
virtual Mat getVarType () const =0
 
virtual void setTrainTestSplit (int count, bool shuffle=true)=0
 将训练数据拆分为训练部分和测试部分。
 
virtual void setTrainTestSplitRatio (double ratio, bool shuffle=true)=0
 将训练数据拆分为训练部分和测试部分。
 
virtual void shuffleTrainTest ()=0
 

静态公共成员函数

static Ptr< TrainDatacreate (InputArray samples, int layout, InputArray responses, InputArray varIdx=noArray(), InputArray sampleIdx=noArray(), InputArray sampleWeights=noArray(), InputArray varType=noArray())
 从内存数组创建训练数据。
 
static Mat getSubMatrix (const Mat &matrix, const Mat &idx, int layout)
 从矩阵中提取由传入索引指定的行/列。
 
static Mat getSubVector (const Mat &vec, const Mat &idx)
 从一维向量中提取由传入索引指定的元素。
 
static Ptr< TrainDataloadFromCSV (const String &filename, int headerLineCount, int responseStartIdx=-1, int responseEndIdx=-1, const String &varTypeSpec=String(), char delimiter=',', char missch='?')
 从 .csv 文件读取数据集并返回可立即使用的训练数据。
 
static float missingValue ()
 

详细说明

封装训练数据的类。

请注意,该类仅指定训练数据的接口,而不指定实现。ml 模块中的所有统计模型类都接受 Ptr<TrainData> 作为参数。换句话说,您可以创建自己的从 TrainData 派生的类,并将指向该类实例的智能指针传递到 StatModel::train 中。

另请参见
训练数据

构造函数和析构函数文档

◆ ~TrainData()

virtual cv::ml::TrainData::~TrainData ( )
virtual

成员函数文档

◆ create()

static Ptr< TrainData > cv::ml::TrainData::create ( InputArray  samples,
int  layout,
InputArray  responses,
InputArray  varIdx = noArray(),
InputArray  sampleIdx = noArray(),
InputArray  sampleWeights = noArray(),
InputArray  varType = noArray() 
)
static
Python
cv.ml.TrainData.create(samples, layout, responses[, varIdx[, sampleIdx[, sampleWeights[, varType]]]]) -> retval
cv.ml.TrainData_create(samples, layout, responses[, varIdx[, sampleIdx[, sampleWeights[, varType]]]]) -> retval

从内存数组创建训练数据。

参数
samples样本矩阵。它应具有 CV_32F 类型。
layout参见 ml::SampleTypes
responses响应矩阵。如果响应是标量,则应将其存储为单行或单列。矩阵应具有 CV_32F 或 CV_32S 类型(在前一种情况下,响应默认情况下被认为是有序的;在后一种情况下,被认为是分类的)
varIdx指定要用于训练的变量的向量。它可以是包含基于 0 的变量索引的整数向量 (CV_32S),也可以是包含活动变量掩码的字节向量 (CV_8U)。
sampleIdx指定要用于训练的样本的向量。它可以是包含基于 0 的样本索引的整数向量 (CV_32S),也可以是包含训练样本掩码的字节向量 (CV_8U)。
sampleWeights每个样本的可选权重向量。它应具有 CV_32F 类型。
varType可选的 CV_8U 类型向量,大小为 <number_of_variables_in_samples> + <number_of_variables_in_responses>,包含每个输入和输出变量的类型。参见 ml::VariableTypes
以下是此函数的调用图

◆ getCatCount()

virtual int cv::ml::TrainData::getCatCount ( int  vi) const
纯虚
Python
cv.ml.TrainData.getCatCount(vi) -> retval

◆ getCatMap()

virtual Mat cv::ml::TrainData::getCatMap ( ) const
纯虚
Python
cv.ml.TrainData.getCatMap() -> retval

◆ getCatOfs()

virtual Mat cv::ml::TrainData::getCatOfs ( ) const
纯虚
Python
cv.ml.TrainData.getCatOfs() -> retval

◆ getClassLabels()

virtual Mat cv::ml::TrainData::getClassLabels ( ) const
纯虚
Python
cv.ml.TrainData.getClassLabels() -> retval

返回类标签向量。

该函数返回响应中出现的唯一标签向量。

◆ getDefaultSubstValues()

virtual Mat cv::ml::TrainData::getDefaultSubstValues ( ) const
纯虚
Python
cv.ml.TrainData.getDefaultSubstValues() -> retval

◆ getLayout()

virtual int cv::ml::TrainData::getLayout ( ) const
纯虚
Python
cv.ml.TrainData.getLayout() -> retval

◆ getMissing()

virtual Mat cv::ml::TrainData::getMissing ( ) const
纯虚
Python
cv.ml.TrainData.getMissing() -> retval

◆ getNAllVars()

virtual int cv::ml::TrainData::getNAllVars ( ) const
纯虚
Python
cv.ml.TrainData.getNAllVars() -> retval

◆ getNames()

virtual void cv::ml::TrainData::getNames ( std::vector< String > &  names) const
纯虚
Python
cv.ml.TrainData.getNames(names) -> None

返回在 loadFromCSV() 中捕获的符号名称向量

◆ getNormCatResponses()

virtual Mat cv::ml::TrainData::getNormCatResponses ( ) const
纯虚
Python
cv.ml.TrainData.getNormCatResponses() -> retval

◆ getNormCatValues()

virtual void cv::ml::TrainData::getNormCatValues ( int  vi,
InputArray  sidx,
int *  values 
) const
纯虚

◆ getNSamples()

virtual int cv::ml::TrainData::getNSamples ( ) const
纯虚
Python
cv.ml.TrainData.getNSamples() -> retval

◆ getNTestSamples()

virtual int cv::ml::TrainData::getNTestSamples ( ) const
纯虚
Python
cv.ml.TrainData.getNTestSamples() -> retval

◆ getNTrainSamples()

virtual int cv::ml::TrainData::getNTrainSamples ( ) const
纯虚
Python
cv.ml.TrainData.getNTrainSamples() -> retval

◆ getNVars()

virtual int cv::ml::TrainData::getNVars ( ) const
纯虚
Python
cv.ml.TrainData.getNVars() -> retval

◆ getResponses()

virtual Mat cv::ml::TrainData::getResponses ( ) const
纯虚
Python
cv.ml.TrainData.getResponses() -> retval

◆ getResponseType()

virtual int cv::ml::TrainData::getResponseType ( ) const
纯虚
Python
cv.ml.TrainData.getResponseType() -> retval

◆ getSample()

virtual void cv::ml::TrainData::getSample ( InputArray  varIdx,
int  sidx,
float *  buf 
) const
纯虚
Python
cv.ml.TrainData.getSample(varIdx, sidx, buf) -> None

◆ getSamples()

virtual Mat cv::ml::TrainData::getSamples ( ) const
纯虚
Python
cv.ml.TrainData.getSamples() -> retval

◆ getSampleWeights()

virtual Mat cv::ml::TrainData::getSampleWeights ( ) const
纯虚
Python
cv.ml.TrainData.getSampleWeights() -> retval

◆ getSubMatrix()

static Mat cv::ml::TrainData::getSubMatrix ( const Mat matrix,
const Mat idx,
int  layout 
)
static
Python
cv.ml.TrainData.getSubMatrix(matrix, idx, layout) -> retval
cv.ml.TrainData_getSubMatrix(matrix, idx, layout) -> retval

从矩阵中提取由传入索引指定的行/列。

参数
matrix输入矩阵(支持类型:CV_32S、CV_32F、CV_64F)
idx一维索引向量
layout指定提取行(cv::ml::ROW_SAMPLES)还是提取列(cv::ml::COL_SAMPLES)

◆ getSubVector()

static Mat cv::ml::TrainData::getSubVector ( const Mat vec,
const Mat idx 
)
static
Python
cv.ml.TrainData.getSubVector(vec, idx) -> retval
cv.ml.TrainData_getSubVector(vec, idx) -> retval

从一维向量中提取由传入索引指定的元素。

参数
vec输入向量(支持类型:CV_32S、CV_32F、CV_64F)
idx一维索引向量

◆ getTestNormCatResponses()

virtual Mat cv::ml::TrainData::getTestNormCatResponses ( ) const
纯虚
Python
cv.ml.TrainData.getTestNormCatResponses() -> retval

◆ getTestResponses()

virtual Mat cv::ml::TrainData::getTestResponses ( ) const
纯虚
Python
cv.ml.TrainData.getTestResponses() -> retval

◆ getTestSampleIdx()

virtual Mat cv::ml::TrainData::getTestSampleIdx ( ) const
纯虚
Python
cv.ml.TrainData.getTestSampleIdx() -> retval

◆ getTestSamples()

virtual Mat cv::ml::TrainData::getTestSamples ( ) const
纯虚
Python
cv.ml.TrainData.getTestSamples() -> retval

返回测试样本矩阵。

◆ getTestSampleWeights()

virtual Mat cv::ml::TrainData::getTestSampleWeights ( ) const
纯虚
Python
cv.ml.TrainData.getTestSampleWeights() -> retval

◆ getTrainNormCatResponses()

virtual Mat cv::ml::TrainData::getTrainNormCatResponses ( ) const
纯虚
Python
cv.ml.TrainData.getTrainNormCatResponses() -> retval

返回归一化分类响应向量。

该函数返回响应向量。每个响应都是从 0<number of classes>-1 的整数。实际标签值随后可以从类标签向量中检索,参见 TrainData::getClassLabels.

◆ getTrainResponses()

virtual Mat cv::ml::TrainData::getTrainResponses ( ) const
纯虚
Python
cv.ml.TrainData.getTrainResponses() -> retval

返回响应向量。

该函数返回排序或原始分类响应。通常用在回归算法中。

◆ getTrainSampleIdx()

virtual Mat cv::ml::TrainData::getTrainSampleIdx ( ) const
纯虚
Python
cv.ml.TrainData.getTrainSampleIdx() -> retval

◆ getTrainSamples()

virtual Mat cv::ml::TrainData::getTrainSamples ( int  layout = ROW_SAMPLE,
bool  compressSamples = true,
bool  compressVars = true 
) const
纯虚
Python
cv.ml.TrainData.getTrainSamples([, layout[, compressSamples[, compressVars]]]) -> retval

返回训练样本矩阵。

参数
layout请求的布局。如果它与初始布局不同,则矩阵将被转置。参见 ml::SampleTypes.
compressSamples如果为 true,则该函数仅返回训练样本(由 sampleIdx 指定)。
compressVars如果为 true,则该函数将返回较短的训练样本,其中仅包含活动变量。

在当前实现中,该函数尝试避免物理数据复制,并返回存储在 TrainData 中的矩阵(除非需要转置或压缩)。

◆ getTrainSampleWeights()

virtual Mat cv::ml::TrainData::getTrainSampleWeights ( ) const
纯虚
Python
cv.ml.TrainData.getTrainSampleWeights() -> retval

◆ getValues()

virtual void cv::ml::TrainData::getValues ( int  vi,
InputArray  sidx,
float *  values 
) const
纯虚
Python
cv.ml.TrainData.getValues(vi, sidx, values) -> None

◆ getVarIdx()

virtual Mat cv::ml::TrainData::getVarIdx ( ) const
纯虚
Python
cv.ml.TrainData.getVarIdx() -> retval

◆ getVarSymbolFlags()

virtual Mat cv::ml::TrainData::getVarSymbolFlags ( ) const
纯虚
Python
cv.ml.TrainData.getVarSymbolFlags() -> retval

◆ getVarType()

virtual Mat cv::ml::TrainData::getVarType ( ) const
纯虚
Python
cv.ml.TrainData.getVarType() -> retval

◆ loadFromCSV()

static Ptr< TrainData > cv::ml::TrainData::loadFromCSV ( const String filename,
int  headerLineCount,
int  responseStartIdx = -1,
int  responseEndIdx = -1,
const String varTypeSpec = String(),
char  delimiter = ',',
char  missch = '?' 
)
static

从 .csv 文件读取数据集并返回可立即使用的训练数据。

参数
filename输入文件名
headerLineCount要跳过的开头行数;除了标题,该函数还跳过空行和以 # 开头的行
responseStartIdx第一个输出变量的索引。如果为 -1,则该函数将最后一个变量视为响应
responseEndIdx最后一个输出变量的索引 + 1。如果为 -1,则在 responseStartIdx 处只有一个响应变量。
varTypeSpec指定变量类型的可选文本字符串。它具有格式 ord[n1-n2,n3,n4-n5,...]cat[n6,n7-n8,...]。也就是说,变量从 n1 到 n2(包括范围)、n3n4 到 n5 ... 被认为是有序的,而 n6n7 到 n8 ... 被认为是分类的。范围 [n1..n2] + [n3] + [n4..n5] + ... + [n6] + [n7..n8] 应涵盖所有变量。如果未指定 varTypeSpec,则算法将使用以下规则
  • 默认情况下,所有输入变量都被认为是有序的。如果某一列包含非数值,例如 'apple'、'pear'、'apple'、'apple'、'mango',则相应的变量被认为是分类的。
  • 如果有几个输出变量,则它们都被认为是有序的。当使用非数值时,会报告 Error
  • 如果只有一个输出变量,那么如果它的值是非数值或都是整数,那么它被认为是分类的。否则,它被认为是有序的。
delimiter用于分隔每行中值的字符。
missch用于指定缺失测量的字符。它不应该是数字。虽然它是非数值,但它肯定不会影响变量是有序还是分类的决定。
注意
如果数据集仅包含输入变量,不包含响应,则使用 responseStartIdx = -2 和 responseEndIdx = 0。输出变量向量将只包含零。

◆ missingValue()

static float cv::ml::TrainData::missingValue ( )
inlinestatic

◆ setTrainTestSplit()

virtual void cv::ml::TrainData::setTrainTestSplit ( int  count,
bool  shuffle = true 
)
纯虚
Python
cv.ml.TrainData.setTrainTestSplit(count[, shuffle]) -> None

将训练数据拆分为训练部分和测试部分。

另请参见
TrainData::setTrainTestSplitRatio

◆ setTrainTestSplitRatio()

virtual void cv::ml::TrainData::setTrainTestSplitRatio ( double  ratio,
bool  shuffle = true 
)
纯虚
Python
cv.ml.TrainData.setTrainTestSplitRatio(ratio[, shuffle]) -> None

将训练数据拆分为训练部分和测试部分。

该函数选择一个指定相对大小的子集,然后将其作为训练集返回。如果未调用该函数,则所有数据都将用于训练。请注意,对于每个 TrainData::getTrain* 都有相应的 TrainData::getTest*,以便可以检索和处理测试子集。

另请参见
TrainData::setTrainTestSplit

◆ shuffleTrainTest()

virtual void cv::ml::TrainData::shuffleTrainTest ( )
纯虚
Python
cv.ml.TrainData.shuffleTrainTest() -> None

此类的文档是从以下文件生成的