封装训练数据的类。 更多...
#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 | ) -> | 无 |
◆ 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 | ) -> | 无 |
◆ 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 & | 矩阵, |
|
|
const Mat & | idx, |
|
|
int | layout ) |
|
static |
| Python |
|---|
| cv.ml.TrainData.getSubMatrix( | matrix, idx, layout | ) -> | retval |
| cv.ml.TrainData_getSubMatrix( | matrix, idx, layout | ) -> | retval |
从矩阵中提取由传入索引指定的行/列。
- 参数
-
| 矩阵 | 输入矩阵(支持类型: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 | ) -> | 无 |
◆ 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”,则相应的变量被视为分类型。
- 如果存在多个输出变量,它们都被视为序数型。错误会在使用非数值时报告。
- 如果存在单个输出变量,则如果其值为非数值或全部为整数,则被视为分类型。否则,被视为序数型。
|
| delimiter | 用于分隔每行值的字符。 |
| missch | 用于指定缺失测量值的字符。它不应是数字。尽管它是一个非数值,但它肯定不会影响变量是有序型还是分类型的决定。 |
- 注意
- 如果数据集只包含输入变量而没有响应,请使用 responseStartIdx = -2 和 responseEndIdx = 0。输出变量向量将只包含零。
◆ missingValue()
| static float cv::ml::TrainData::missingValue |
( |
| ) |
|
|
内联静态 |
◆ setTrainTestSplit()
| virtual void cv::ml::TrainData::setTrainTestSplit |
( |
int | count, |
|
|
bool | shuffle = true ) |
|
纯虚函数 |
| Python |
|---|
| cv.ml.TrainData.setTrainTestSplit( | count[, shuffle] | ) -> | 无 |
◆ 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( | | ) -> | 无 |
此类的文档是从以下文件生成的