封装训练数据的类。 更多...
#include <opencv2/ml.hpp>
|
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< TrainData > | create (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< TrainData > | loadFromCSV (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()
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 |
◆ 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 |
◆ 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 (包括范围)、n3 、n4 到 n5 ... 被认为是有序的,而 n6 、n7 到 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 |
◆ 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 |
此类的文档是从以下文件生成的