类 TrainData


  • public class TrainData
    extends java.lang.Object
    封装训练数据的类。请注意,该类仅指定训练数据的接口,而不指定其实现。_ml_ 模块中的所有统计模型类都接受 Ptr<TrainData> 作为参数。换句话说,您可以创建自己的派生自 TrainData 的类,并将该类的智能指针传递给 StatModel::train。参见:引用:ml_intro_data
    • 字段详细信息

      • nativeObj

        protected final long nativeObj
    • 构造函数详细信息

      • TrainData

        protected TrainData​(long addr)
    • 方法详细信息

      • getNativeObjAddr

        public long getNativeObjAddr()
      • __fromPtr__

        public static TrainData __fromPtr__​(long addr)
      • getLayout

        public int getLayout()
      • getNTrainSamples

        public int getNTrainSamples()
      • getNTestSamples

        public int getNTestSamples()
      • getNSamples

        public int getNSamples()
      • getNVars

        public int getNVars()
      • getNAllVars

        public int getNAllVars()
      • getSample

        public void getSample​(Mat varIdx,
                              int sidx,
                              float buf)
      • getSamples

        public Mat getSamples()
      • getMissing

        public Mat getMissing()
      • getTrainSamples

        public Mat getTrainSamples​(int layout,
                                   boolean compressSamples,
                                   boolean compressVars)
        返回训练样本矩阵
        参数
        layout - 请求的布局。如果与初始布局不同,则矩阵将被转置。参见 ml::SampleTypes。
        compressSamples - 如果为 true,则函数仅返回训练样本(由 sampleIdx 指定)
        compressVars - 如果为 true,则函数返回较短的训练样本,仅包含活动变量。在当前实现中,函数尝试避免物理数据复制,并返回存储在 TrainData 内部的矩阵(除非需要转置或压缩)。
        返回
        自动生成
      • getTrainSamples

        public Mat getTrainSamples​(int layout,
                                   boolean compressSamples)
        返回训练样本矩阵
        参数
        layout - 请求的布局。如果与初始布局不同,则矩阵将被转置。参见 ml::SampleTypes。
        compressSamples - 如果为 true,则函数仅返回训练样本(由 sampleIdx 指定)和活动变量。在当前实现中,函数尝试避免物理数据复制,并返回存储在 TrainData 内部的矩阵(除非需要转置或压缩)。
        返回
        自动生成
      • getTrainSamples

        public Mat getTrainSamples​(int layout)
        返回训练样本矩阵
        参数
        layout - 请求的布局。如果与初始布局不同,则矩阵将被转置。参见 ml::SampleTypes。sampleIdx) 包含活动变量。在当前实现中,函数尝试避免物理数据复制,并返回存储在 TrainData 内部的矩阵(除非需要转置或压缩)。
        返回
        自动生成
      • getTrainSamples

        public Mat getTrainSamples()
        返回转置的训练样本矩阵。参见 ml::SampleTypes。sampleIdx) 包含活动变量。在当前实现中,函数尝试避免物理数据复制,并返回存储在 TrainData 内部的矩阵(除非需要转置或压缩)。
        返回
        自动生成
      • getTrainResponses

        public Mat getTrainResponses()
        返回响应向量。该函数返回有序或原始的分类响应。通常用于回归算法中。
        返回
        自动生成
      • getTrainNormCatResponses

        public Mat getTrainNormCatResponses()
        返回归一化分类响应向量。该函数返回响应向量。每个响应都是从 0 到 `<类别数>-1` 的整数。实际的标签值可以从类别标签向量中检索,参见 TrainData::getClassLabels。
        返回
        自动生成
      • getTestResponses

        public Mat getTestResponses()
      • getTestNormCatResponses

        public Mat getTestNormCatResponses()
      • getResponses

        public Mat getResponses()
      • getNormCatResponses

        public Mat getNormCatResponses()
      • getSampleWeights

        public Mat getSampleWeights()
      • getTrainSampleWeights

        public Mat getTrainSampleWeights()
      • getTestSampleWeights

        public Mat getTestSampleWeights()
      • getVarIdx

        public Mat getVarIdx()
      • getVarType

        public Mat getVarType()
      • getVarSymbolFlags

        public Mat getVarSymbolFlags()
      • getResponseType

        public int getResponseType()
      • getTrainSampleIdx

        public Mat getTrainSampleIdx()
      • getTestSampleIdx

        public Mat getTestSampleIdx()
      • getValues

        public void getValues​(int vi,
                              Mat sidx,
                              float values)
      • getDefaultSubstValues

        public Mat getDefaultSubstValues()
      • getCatCount

        public int getCatCount​(int vi)
      • getClassLabels

        public Mat getClassLabels()
        返回类别标签向量。该函数返回响应中出现的唯一标签向量。
        返回
        自动生成
      • getCatOfs

        public Mat getCatOfs()
      • getCatMap

        public Mat getCatMap()
      • setTrainTestSplit

        public void setTrainTestSplit​(int count,
                                      boolean shuffle)
        将训练数据分为训练部分和测试部分。参见:TrainData::setTrainTestSplitRatio
        参数
        count - 自动生成
        shuffle - 自动生成
      • setTrainTestSplit

        public void setTrainTestSplit​(int count)
        将训练数据分为训练部分和测试部分。参见:TrainData::setTrainTestSplitRatio
        参数
        count - 自动生成
      • setTrainTestSplitRatio

        public void setTrainTestSplitRatio​(double ratio,
                                           boolean shuffle)
        将训练数据分为训练和测试部分。该函数选择指定相对大小的子集,然后将其作为训练集返回。如果未调用该函数,则所有数据都将用于训练。请注意,对于每个 TrainData::getTrain\*,都有相应的 TrainData::getTest\*,以便也可以检索和处理测试子集。参见:TrainData::setTrainTestSplit
        参数
        ratio - 自动生成
        shuffle - 自动生成
      • setTrainTestSplitRatio

        public void setTrainTestSplitRatio​(double ratio)
        将训练数据分为训练和测试部分。该函数选择指定相对大小的子集,然后将其作为训练集返回。如果未调用该函数,则所有数据都将用于训练。请注意,对于每个 TrainData::getTrain\*,都有相应的 TrainData::getTest\*,以便也可以检索和处理测试子集。参见:TrainData::setTrainTestSplit
        参数
        ratio - 自动生成
      • shuffleTrainTest

        public void shuffleTrainTest()
      • getTestSamples

        public Mat getTestSamples()
        返回测试样本矩阵
        返回
        自动生成
      • getNames

        public void getNames​(java.util.List<java.lang.String> names)
        返回 loadFromCSV() 中捕获的符号名称向量
        参数
        names - 自动生成
      • getSubVector

        public static Mat getSubVector​(Mat vec,
                                       Mat idx)
        从一维向量中提取由传入索引指定的元素。
        参数
        vec - 输入向量(支持的类型:CV_32S, CV_32F, CV_64F)
        idx - 一维索引向量
        返回
        自动生成
      • getSubMatrix

        public static Mat getSubMatrix​(Mat matrix,
                                       Mat idx,
                                       int layout)
        从矩阵中提取由传入索引指定的行/列。
        参数
        matrix - 输入矩阵(支持的类型:CV_32S, CV_32F, CV_64F)
        idx - 一维索引向量
        layout - 指定提取行 (cv::ml::ROW_SAMPLES) 或提取列 (cv::ml::COL_SAMPLES)
        返回
        自动生成
      • create

        public static TrainData create​(Mat samples,
                                       int layout,
                                       Mat responses,
                                       Mat varIdx,
                                       Mat sampleIdx,
                                       Mat sampleWeights,
                                       Mat varType)
        从内存数组创建训练数据。
        参数
        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,大小为 `<样本中变量数> + <响应中变量数>`,包含每个输入和输出变量的类型。参见 ml::VariableTypes。
        返回
        自动生成
      • create

        public static TrainData create​(Mat samples,
                                       int layout,
                                       Mat responses,
                                       Mat varIdx,
                                       Mat sampleIdx,
                                       Mat sampleWeights)
        从内存数组创建训练数据。
        参数
        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 类型。`<响应中变量数>`,包含每个输入和输出变量的类型。参见 ml::VariableTypes。
        返回
        自动生成
      • create

        public static TrainData create​(Mat samples,
                                       int layout,
                                       Mat responses,
                                       Mat varIdx,
                                       Mat sampleIdx)
        从内存数组创建训练数据。
        参数
        samples - 样本矩阵。应为 CV_32F 类型。
        layout - 参见 ml::SampleTypes。
        responses - 响应矩阵。如果响应是标量,则应将其存储为单行或单列。矩阵应为 CV_32F 或 CV_32S 类型(前一种情况下,响应默认视为有序;后一种情况下,视为分类)
        varIdx - 指定用于训练的变量的向量。它可以是包含基于0的变量索引的整数向量(CV_32S),也可以是包含活动变量掩码的字节向量(CV_8U)。
        sampleIdx - 指定用于训练的样本的向量。它可以是包含基于0的样本索引的整数向量(CV_32S),也可以是包含训练样本掩码的字节向量(CV_8U)。`<响应中变量数>`,包含每个输入和输出变量的类型。参见 ml::VariableTypes。
        返回
        自动生成
      • create

        public static TrainData create​(Mat samples,
                                       int layout,
                                       Mat responses,
                                       Mat varIdx)
        从内存数组创建训练数据。
        参数
        samples - 样本矩阵。应为 CV_32F 类型。
        layout - 参见 ml::SampleTypes。
        responses - 响应矩阵。如果响应是标量,则应将其存储为单行或单列。矩阵应为 CV_32F 或 CV_32S 类型(前一种情况下,响应默认视为有序;后一种情况下,视为分类)
        varIdx - 指定用于训练的变量的向量。它可以是包含基于0的变量索引的整数向量(CV_32S),也可以是包含活动变量掩码的字节向量(CV_8U)。向量(CV_32S)包含基于0的样本索引或字节向量(CV_8U)包含训练样本的掩码。`<响应中变量数>`,包含每个输入和输出变量的类型。参见 ml::VariableTypes。
        返回
        自动生成
      • create

        public static TrainData create​(Mat samples,
                                       int layout,
                                       Mat responses)
        从内存数组创建训练数据。
        参数
        samples - 样本矩阵。应为 CV_32F 类型。
        layout - 参见 ml::SampleTypes。
        responses - 响应矩阵。如果响应是标量,则应将其存储为单行或单列。矩阵应为 CV_32F 或 CV_32S 类型(前一种情况下,响应默认视为有序;后一种情况下,视为分类)(CV_32S)包含基于0的变量索引或字节向量(CV_8U)包含活动变量的掩码。向量(CV_32S)包含基于0的样本索引或字节向量(CV_8U)包含训练样本的掩码。`<响应中变量数>`,包含每个输入和输出变量的类型。参见 ml::VariableTypes。
        返回
        自动生成
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        重写
        finalize 在类 java.lang.Object 中
        抛出
        java.lang.Throwable