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 - 如果为真,则函数只返回训练样本(由 sampleIdx 指定)
        compressVars - 如果为真,则函数将返回较短的训练样本,其中只包含活动变量。在当前实现中,该函数试图避免物理数据复制,并返回 TrainData 中存储的矩阵(除非需要转置或压缩)。
        返回
        自动生成
      • getTrainSamples

        public Mat getTrainSamples​(int layout,
                                   boolean compressSamples)
        返回训练样本矩阵
        参数
        layout - 请求的布局。如果它与初始布局不同,则矩阵将被转置。参见 ml::SampleTypes。
        compressSamples - 如果为真,则函数只返回训练样本(由 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)
        从由传递的索引指定的1D向量元素中提取。
        参数
        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
        重写
        java.lang.Object中的finalize
        抛出
        java.lang.Throwable