OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
无匹配项
cv::ml::DTrees 类参考抽象

此类表示单个决策树或决策树集合。更多…

#include <opencv2/ml.hpp>

cv::ml::DTrees 的协作图

类  Node
 此类表示决策树节点。更多…
 
类  Split
 此类表示决策树中的分割。更多…
 

公共类型

枚举  Flags {
  PREDICT_AUTO =0 ,
  PREDICT_SUM =(1<<8) ,
  PREDICT_MAX_VOTE =(2<<8) ,
  PREDICT_MASK =(3<<8)
}
 
- 从 cv::ml::StatModel 继承的公共类型
枚举  Flags {
  UPDATE_MODEL = 1 ,
  RAW_OUTPUT =1 ,
  COMPRESSED_INPUT =2 ,
  PREPROCESSED_INPUT =4
}
 

公共成员函数

virtual int getCVFolds () const =0
 
virtual int getMaxCategories () const =0
 
virtual int getMaxDepth () const =0
 
virtual int getMinSampleCount () const =0
 
virtual const std::vector< Node > & getNodes () const =0
 返回所有节点。
 
virtual cv::Mat getPriors () const =0
 先验类概率数组,按类标签值排序。
 
virtual float getRegressionAccuracy () const =0
 
virtual const std::vector< int > & getRoots () const =0
 返回根节点的索引。
 
virtual const std::vector< Split > & getSplits () const =0
 返回所有分割。
 
virtual const std::vector< int > & getSubsets () const =0
 返回所有用于分类分割的位集。
 
virtual bool getTruncatePrunedTree () const =0
 
virtual bool getUse1SERule () const =0
 
virtual bool getUseSurrogates () const =0
 
virtual void setCVFolds (int val)=0
 
virtual void setMaxCategories (int val)=0
 
virtual void setMaxDepth (int val)=0
 
virtual void setMinSampleCount (int val)=0
 
virtual void setPriors (const cv::Mat &val)=0
 先验类概率数组,按类标签值排序。
 
virtual void setRegressionAccuracy (float val)=0
 
virtual void setTruncatePrunedTree (bool val)=0
 
virtual void setUse1SERule (bool val)=0
 
virtual void setUseSurrogates (bool val)=0
 
- 从 cv::ml::StatModel 继承的公共成员函数
virtual float calcError (const Ptr< TrainData > &data, bool test, OutputArray resp) const
 计算训练或测试数据集上的误差。
 
virtual bool empty () const CV_OVERRIDE
 如果 算法 为空(例如,在开始时或读取失败后),则返回 true。
 
virtual int getVarCount () const =0
 返回训练样本中的变量数。
 
virtual bool isClassifier () const =0
 如果模型是分类器,则返回 true。
 
virtual bool isTrained () const =0
 如果模型已训练,则返回 true。
 
virtual float predict (InputArray samples, OutputArray results=noArray(), int flags=0) const =0
 预测提供的样本的响应。
 
virtual bool train (const Ptr< TrainData > &trainData, int flags=0)
 训练统计模型。
 
virtual bool train (InputArray samples, int layout, InputArray responses)
 训练统计模型。
 
- 从 cv::Algorithm 继承的公共成员函数
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 清除算法状态。
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 从文件存储中读取算法参数。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
virtual void write (FileStorage &fs) const
 将算法参数存储在文件存储中。
 
void write (FileStorage &fs, const String &name) const
 

静态公共成员函数

static Ptr< DTreescreate ()
 创建空模型。
 
static Ptr< DTreesload (const String &filepath, const String &nodeName=String())
 从文件中加载并创建一个序列化的DTrees
 
- 继承自cv::ml::StatModel的静态公共成员函数
template<typename _Tp >
static Ptr< _Tptrain (const Ptr< TrainData > &data, int flags=0)
 使用默认参数创建并训练模型。
 
- 继承自cv::Algorithm的静态公共成员函数
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 从文件中加载算法。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 从字符串加载算法。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 从文件节点读取算法。
 

其他继承的成员

- 继承自cv::Algorithm的保护成员函数
void writeFormat (FileStorage &fs) const
 

详细描述

该类表示单个决策树或决策树集合。

该类的当前公共接口只允许用户训练单个决策树,但是该类能够存储多个决策树并使用它们进行预测(通过求和响应或使用投票方案),并且派生自DTrees的类(例如RTreesBoost)使用此功能来实现决策树集成。

另请参阅
决策树

成员枚举文档

◆ 标志

预测选项

枚举器
PREDICT_AUTO 
PREDICT_SUM 
PREDICT_MAX_VOTE 
PREDICT_MASK 

成员函数文档

◆ create()

static Ptr< DTrees > cv::ml::DTrees::create ( )
静态
Python
cv.ml.DTrees.create() -> 返回值
cv.ml.DTrees_create() -> 返回值

创建空模型。

静态方法使用指定的参数创建空决策树。然后应该使用train方法对其进行训练(参见StatModel::train)。或者,您可以使用Algorithm::load<DTrees>(filename)从文件加载模型。

◆ getCVFolds()

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

如果 CVFolds > 1,则算法将使用 K 折交叉验证过程修剪构建的决策树,其中 K 等于 CVFolds。默认值为 10。

另请参阅
setCVFolds

◆ getMaxCategories()

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

将分类变量的可能值聚类到 K<=maxCategories 个集群中以找到次优分割。如果训练过程试图在其上进行分割的离散变量取值超过 maxCategories,则精确的最佳子集估计可能需要很长时间,因为算法是指数级的。相反,许多决策树引擎(包括我们的实现)在这种情况下尝试通过将所有样本聚类到 maxCategories 个集群中来找到次优分割,即某些类别合并在一起。聚类仅在 n > 2 类分类问题中对具有 N > max_categories 可能值的分类变量应用。在回归和 2 类分类的情况下,可以有效地找到最佳分割而无需使用聚类,因此在这些情况下不使用该参数。默认值为 10。

另请参阅
setMaxCategories

◆ getMaxDepth()

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

树的最大可能深度。也就是说,训练算法尝试分割节点,而其深度小于 maxDepth。根节点的深度为零。如果满足其他终止条件(参见此处训练过程概述),和/或如果树被修剪,则实际深度可能更小。默认值为 INT_MAX。

另请参阅
setMaxDepth

◆ getMinSampleCount()

虚拟 int cv::ml::DTrees::getMinSampleCount ( ) const
纯虚函数
Python
cv.ml.DTrees.getMinSampleCount() -> 返回值

如果节点中样本数少于此参数,则该节点将不会被分割。

默认值为 10。

另请参阅
setMinSampleCount

◆ getNodes()

virtual const std::vector< Node > & cv::ml::DTrees::getNodes ( ) const
纯虚函数

返回所有节点。

所有节点索引都是返回向量中的索引

◆ getPriors()

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

先验类概率数组,按类标签值排序。

此参数可用于调整决策树对特定类别的偏好。例如,如果您想检测某些罕见的异常事件,则训练基础可能包含比异常情况多得多的正常情况,因此仅通过将每种情况都视为正常情况即可实现非常好的分类性能。为了避免这种情况,可以指定先验概率,其中人为地增加了异常概率(高达 0.5 或更高),因此错误分类异常的权重变得更大,并且树得到适当调整。

您也可以将此参数视为预测类别的权重,这些权重决定了您赋予错误分类的相对权重。也就是说,如果第一类别的权重为 1,第二类别的权重为 10,则预测第二类别出错一次相当于预测第一类别出错 10 次。默认值为空的 Mat

另请参阅
setPriors

◆ getRegressionAccuracy()

virtual float cv::ml::DTrees::getRegressionAccuracy ( ) const
纯虚函数
Python
cv.ml.DTrees.getRegressionAccuracy() -> 返回值

回归树的终止条件。如果节点中估计值与该节点中训练样本值的全部绝对差小于此参数,则该节点将不再进一步分割。默认值为 0.01f

另请参阅
setRegressionAccuracy

◆ getRoots()

virtual const std::vector< int > & cv::ml::DTrees::getRoots ( ) const
纯虚函数

返回根节点的索引。

◆ getSplits()

virtual const std::vector< Split > & cv::ml::DTrees::getSplits ( ) const
纯虚函数

返回所有分割。

所有分割索引都是返回向量中的索引

◆ getSubsets()

virtual const std::vector< int > & cv::ml::DTrees::getSubsets ( ) const
纯虚函数

返回所有用于分类分割的位集。

Split::subsetOfs 是返回向量中的偏移量

◆ getTruncatePrunedTree()

virtual bool cv::ml::DTrees::getTruncatePrunedTree ( ) const
纯虚函数
Python
cv.ml.DTrees.getTruncatePrunedTree() -> 返回值

如果为真,则修剪的分支将从树中物理移除。否则,它们将被保留,并且可以从原始的未修剪(或修剪较少)树中获取结果。默认值为真。

另请参阅
setTruncatePrunedTree

◆ getUse1SERule()

virtual bool cv::ml::DTrees::getUse1SERule ( ) const
纯虚函数
Python
cv.ml.DTrees.getUse1SERule() -> 返回值

如果为真,则修剪将更严格。这将使树更紧凑,更能抵抗训练数据噪声,但精度略低。默认值为真。

另请参阅
setUse1SERule

◆ getUseSurrogates()

virtual bool cv::ml::DTrees::getUseSurrogates ( ) const
纯虚函数
Python
cv.ml.DTrees.getUseSurrogates() -> 返回值

如果为真,则将构建替代分割。这些分割允许处理缺失数据并正确计算变量重要性。默认值为假。

注意
目前尚未实现。
另请参阅
setUseSurrogates

◆ load()

static Ptr< DTrees > cv::ml::DTrees::load ( const String & filepath,
const String & nodeName = String() )
静态
Python
cv.ml.DTrees.load(filepath[, nodeName]) -> 返回值
cv.ml.DTrees_load(filepath[, nodeName]) -> 返回值

从文件中加载并创建一个序列化的DTrees

使用 DTree::save 将 DTree 序列化并存储到磁盘。通过使用文件的路径调用此函数,再次从该文件加载 DTree。可以选择为包含分类器的文件指定节点

参数
filepath序列化 DTree 的路径
nodeName包含分类器的节点名称

◆ setCVFolds()

virtual void cv::ml::DTrees::setCVFolds ( int val)
纯虚函数
Python
cv.ml.DTrees.setCVFolds(val) ->

另请参阅
getCVFolds

◆ setMaxCategories()

virtual void cv::ml::DTrees::setMaxCategories ( int val)
纯虚函数
Python
cv.ml.DTrees.setMaxCategories(val) ->

另请参阅
getMaxCategories

◆ setMaxDepth()

virtual void cv::ml::DTrees::setMaxDepth ( int val)
纯虚函数
Python
cv.ml.DTrees.setMaxDepth(val) ->

另请参阅
getMaxDepth

◆ setMinSampleCount()

virtual void cv::ml::DTrees::setMinSampleCount ( int val)
纯虚函数
Python
cv.ml.DTrees.setMinSampleCount(val) ->

另请参阅
getMinSampleCount

◆ setPriors()

virtual void cv::ml::DTrees::setPriors ( const cv::Mat & val)
纯虚函数
Python
cv.ml.DTrees.setPriors(val) ->

先验类概率数组,按类标签值排序。

另请参阅
getPriors

◆ setRegressionAccuracy()

virtual void cv::ml::DTrees::setRegressionAccuracy ( float val)
纯虚函数
Python
cv.ml.DTrees.setRegressionAccuracy(val) ->

另请参阅
getRegressionAccuracy

◆ setTruncatePrunedTree()

virtual void cv::ml::DTrees::setTruncatePrunedTree ( bool val)
纯虚函数
Python
cv.ml.DTrees.setTruncatePrunedTree(val) ->

另请参阅
getTruncatePrunedTree

◆ setUse1SERule()

virtual void cv::ml::DTrees::setUse1SERule ( bool val)
纯虚函数
Python
cv.ml.DTrees.setUse1SERule(val) ->

另请参阅
getUse1SERule

◆ setUseSurrogates()

virtual void cv::ml::DTrees::setUseSurrogates ( bool val)
纯虚函数
Python
cv.ml.DTrees.setUseSurrogates(val) ->

另请参阅
getUseSurrogates

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