OpenCV 4.11.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() )
静态
Python
cv.ml.TrainData.create(样本, 布局, 响应[, varIdx[, sampleIdx[, sampleWeights[, varType]]]]) -> 返回值
cv.ml.TrainData_create(样本, 布局, 响应[, varIdx[, sampleIdx[, sampleWeights[, varType]]]]) -> 返回值

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

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

◆ getCatCount()

virtual int cv::ml::TrainData::getCatCount ( int vi) const
纯虚函数
Python
cv.ml.TrainData.getCatCount(vi) -> 返回值

◆ getCatMap()

virtual Mat cv::ml::TrainData::getCatMap ( ) const
纯虚函数
Python
cv.ml.TrainData.getCatMap() -> 返回值

◆ getCatOfs()

virtual Mat cv::ml::TrainData::getCatOfs ( ) const
纯虚函数
Python
cv.ml.TrainData.getCatOfs() -> 返回值

◆ getClassLabels()

virtual Mat cv::ml::TrainData::getClassLabels ( ) const
纯虚函数
Python
cv.ml.TrainData.getClassLabels() -> 返回值

返回类别标签向量。

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

◆ getDefaultSubstValues()

virtual Mat cv::ml::TrainData::getDefaultSubstValues ( ) const
纯虚函数
Python
cv.ml.TrainData.getDefaultSubstValues() -> 返回值

◆ getLayout()

virtual int cv::ml::TrainData::getLayout ( ) const
纯虚函数
Python
cv.ml.TrainData.getLayout() -> 返回值

◆ getMissing()

virtual Mat cv::ml::TrainData::getMissing ( ) const
纯虚函数
Python
cv.ml.TrainData.getMissing() -> 返回值

◆ getNAllVars()

virtual int cv::ml::TrainData::getNAllVars ( ) const
纯虚函数
Python
cv.ml.TrainData.getNAllVars() -> 返回值

◆ getNames()

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

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

◆ getNormCatResponses()

virtual Mat cv::ml::TrainData::getNormCatResponses ( ) const
纯虚函数
Python
cv.ml.TrainData.getNormCatResponses() -> 返回值

◆ 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() -> 返回值

◆ getNTestSamples()

virtual int cv::ml::TrainData::getNTestSamples ( ) const
纯虚函数
Python
cv.ml.TrainData.getNTestSamples() -> 返回值

◆ getNTrainSamples()

virtual int cv::ml::TrainData::getNTrainSamples ( ) const
纯虚函数
Python
cv.ml.TrainData.getNTrainSamples() -> 返回值

◆ getNVars()

virtual int cv::ml::TrainData::getNVars ( ) const
纯虚函数
Python
cv.ml.TrainData.getNVars() -> 返回值

◆ getResponses()

virtual Mat cv::ml::TrainData::getResponses ( ) const
纯虚函数
Python
cv.ml.TrainData.getResponses() -> 返回值

◆ getResponseType()

virtual int cv::ml::TrainData::getResponseType ( ) const
纯虚函数
Python
cv.ml.TrainData.getResponseType() -> 返回值

◆ getSample()

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

◆ getSamples()

virtual Mat cv::ml::TrainData::getSamples ( ) const
纯虚函数
Python
cv.ml.TrainData.getSamples() -> 返回值

◆ getSampleWeights()

virtual Mat cv::ml::TrainData::getSampleWeights ( ) const
纯虚函数
Python
cv.ml.TrainData.getSampleWeights() -> 返回值

◆ getSubMatrix()

static Mat cv::ml::TrainData::getSubMatrix ( const Mat & matrix,
const Mat & idx,
int layout )
静态
Python
cv.ml.TrainData.getSubMatrix(matrix, idx, layout) -> 返回值
cv.ml.TrainData_getSubMatrix(matrix, idx, layout) -> 返回值

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

参数
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 )
静态
Python
cv.ml.TrainData.getSubVector(vec, idx) -> 返回值
cv.ml.TrainData_getSubVector(vec, idx) -> 返回值

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

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

◆ getTestNormCatResponses()

virtual Mat cv::ml::TrainData::getTestNormCatResponses ( ) const
纯虚函数
Python
cv.ml.TrainData.getTestNormCatResponses() -> 返回值

◆ getTestResponses()

virtual Mat cv::ml::TrainData::getTestResponses ( ) const
纯虚函数
Python
cv.ml.TrainData.getTestResponses() -> 返回值

◆ getTestSampleIdx()

virtual Mat cv::ml::TrainData::getTestSampleIdx ( ) const
纯虚函数
Python
cv.ml.TrainData.getTestSampleIdx() -> 返回值

◆ getTestSamples()

virtual Mat cv::ml::TrainData::getTestSamples ( ) const
纯虚函数
Python
cv.ml.TrainData.getTestSamples() -> 返回值

返回测试样本矩阵。

◆ getTestSampleWeights()

virtual Mat cv::ml::TrainData::getTestSampleWeights ( ) const
纯虚函数
Python
cv.ml.TrainData.getTestSampleWeights() -> 返回值

◆ getTrainNormCatResponses()

virtual Mat cv::ml::TrainData::getTrainNormCatResponses ( ) const
纯虚函数
Python
cv.ml.TrainData.getTrainNormCatResponses() -> 返回值

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

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

◆ getTrainResponses()

virtual Mat cv::ml::TrainData::getTrainResponses ( ) const
纯虚函数
Python
cv.ml.TrainData.getTrainResponses() -> 返回值

返回响应向量。

该函数返回有序的或原始的类别响应。通常用于回归算法。

◆ getTrainSampleIdx()

virtual Mat cv::ml::TrainData::getTrainSampleIdx ( ) const
纯虚函数
Python
cv.ml.TrainData.getTrainSampleIdx() -> 返回值

◆ 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]]]) -> 返回值

返回训练样本矩阵。

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

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

◆ getTrainSampleWeights()

virtual Mat cv::ml::TrainData::getTrainSampleWeights ( ) const
纯虚函数
Python
cv.ml.TrainData.getTrainSampleWeights() -> 返回值

◆ getValues()

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

◆ getVarIdx()

virtual Mat cv::ml::TrainData::getVarIdx ( ) const
纯虚函数
Python
cv.ml.TrainData.getVarIdx() -> 返回值

◆ getVarSymbolFlags()

virtual Mat cv::ml::TrainData::getVarSymbolFlags ( ) const
纯虚函数
Python
cv.ml.TrainData.getVarSymbolFlags() -> 返回值

◆ getVarType()

virtual Mat cv::ml::TrainData::getVarType ( ) const
纯虚函数
Python
cv.ml.TrainData.getVarType() -> 返回值

◆ 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 = '?' )
静态

从 .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]) ->

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

另请参见
TrainData::setTrainTestSplitRatio

◆ setTrainTestSplitRatio()

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

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

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

另请参见
TrainData::setTrainTestSplit

◆ shuffleTrainTest()

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

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