OpenCV  4.10.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
 如果 Algorithm 为空(例如在开始时或读取不成功后),则返回 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)派生出的类使用此功能来实现决策树集合。

另请参阅
决策树

成员枚举文档

◆ Flags

预测选项

枚举器
PREDICT_AUTO 
PREDICT_MAX_VOTE 
PREDICT_MASK 

成员函数文档

◆ create()

static Ptr< DTrees > cv::ml::DTrees::create ( )
static
Python
cv.ml.DTrees.create() -> retval
cv.ml.DTrees_create() -> retval

创建空模型。

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

◆ getCVFolds()

virtual int cv::ml::DTrees::getCVFolds ( ) const
pure virtual
Python
cv.ml.DTrees.getCVFolds() -> retval

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

另请参阅
setCVFolds

◆ getMaxCategories()

virtual int cv::ml::DTrees::getMaxCategories ( ) const
pure virtual
Python
cv.ml.DTrees.getMaxCategories() -> retval

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

另请参阅
setMaxCategories

◆ getMaxDepth()

virtual int cv::ml::DTrees::getMaxDepth ( ) const
pure virtual
Python
cv.ml.DTrees.getMaxDepth() -> retval

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

另请参阅
setMaxDepth

◆ getMinSampleCount()

virtual int cv::ml::DTrees::getMinSampleCount ( ) const
pure virtual
Python
cv.ml.DTrees.getMinSampleCount() -> retval

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

默认值为 10。

另请参阅
setMinSampleCount

◆ getNodes()

virtual const std::vector< Node > & cv::ml::DTrees::getNodes ( ) const
pure virtual

返回所有节点。

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

◆ getPriors()

virtual cv::Mat cv::ml::DTrees::getPriors ( ) const
pure virtual
Python
cv.ml.DTrees.getPriors() -> retval

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

该参数可用于调整决策树对特定类别的偏好。例如,如果您想检测某些罕见的异常情况,训练基础可能包含比异常更多正常情况,因此只需将每个情况视为正常就可以实现非常好的分类性能。为了避免这种情况,可以指定先验概率,其中异常概率被人工提高(高达 0.5 甚至更高),因此错误分类异常的权重变得更大,树被适当调整。

您也可以将此参数视为预测类别的权重,它们决定了您赋予错误分类的相对权重。也就是说,如果第一个类别的权重为 1,而第二个类别的权重为 10,则在预测第二个类别时发生的每个错误都相当于在预测第一个类别时发生 10 个错误。默认值为空的 Mat

另请参阅
setPriors

◆ getRegressionAccuracy()

virtual float cv::ml::DTrees::getRegressionAccuracy ( ) const
pure virtual
Python
cv.ml.DTrees.getRegressionAccuracy() -> retval

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

另请参阅
setRegressionAccuracy

◆ getRoots()

virtual const std::vector< int > & cv::ml::DTrees::getRoots ( ) const
pure virtual

返回根节点的索引。

◆ getSplits()

virtual const std::vector< Split > & cv::ml::DTrees::getSplits ( ) const
pure virtual

返回所有分割。

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

◆ getSubsets()

virtual const std::vector< int > & cv::ml::DTrees::getSubsets ( ) const
pure virtual

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

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

◆ getTruncatePrunedTree()

virtual bool cv::ml::DTrees::getTruncatePrunedTree ( ) const
pure virtual
Python
cv.ml.DTrees.getTruncatePrunedTree() -> retval

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

另请参阅
setTruncatePrunedTree

◆ getUse1SERule()

virtual bool cv::ml::DTrees::getUse1SERule ( ) const
pure virtual
Python
cv.ml.DTrees.getUse1SERule() -> retval

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

另请参阅
setUse1SERule

◆ getUseSurrogates()

virtual bool cv::ml::DTrees::getUseSurrogates ( ) const
pure virtual
Python
cv.ml.DTrees.getUseSurrogates() -> retval

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

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

◆ load()

static Ptr< DTrees > cv::ml::DTrees::load ( const String filepath,
const String nodeName = String() 
)
static
Python
cv.ml.DTrees.load(filepath[, nodeName]) -> retval
cv.ml.DTrees_load(filepath[, nodeName]) -> retval

从文件加载并创建序列化 DTrees

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

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

◆ setCVFolds()

virtual void cv::ml::DTrees::setCVFolds ( int  val)
pure virtual
Python
cv.ml.DTrees.setCVFolds(val) -> None

另请参阅
getCVFolds

◆ setMaxCategories()

virtual void cv::ml::DTrees::setMaxCategories ( int  val)
pure virtual
Python
cv.ml.DTrees.setMaxCategories(val) -> None

另请参阅
getMaxCategories

◆ setMaxDepth()

virtual void cv::ml::DTrees::setMaxDepth ( int  val)
pure virtual
Python
cv.ml.DTrees.setMaxDepth(val) -> None

另请参阅
getMaxDepth

◆ setMinSampleCount()

virtual void cv::ml::DTrees::setMinSampleCount ( int  val)
pure virtual
Python
cv.ml.DTrees.setMinSampleCount(val) -> None

另请参阅
getMinSampleCount

◆ setPriors()

virtual void cv::ml::DTrees::setPriors ( const cv::Mat val)
pure virtual
Python
cv.ml.DTrees.setPriors(val) -> None

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

另请参阅
getPriors

◆ setRegressionAccuracy()

virtual void cv::ml::DTrees::setRegressionAccuracy ( float  val)
pure virtual
Python
cv.ml.DTrees.setRegressionAccuracy(val) -> None

另请参阅
getRegressionAccuracy

◆ setTruncatePrunedTree()

virtual void cv::ml::DTrees::setTruncatePrunedTree ( bool  val)
pure virtual
Python
cv.ml.DTrees.setTruncatePrunedTree(val) -> None

另请参阅
getTruncatePrunedTree

◆ setUse1SERule()

virtual void cv::ml::DTrees::setUse1SERule ( bool  val)
pure virtual
Python
cv.ml.DTrees.setUse1SERule(val) -> None

另请参阅
getUse1SERule

◆ setUseSurrogates()

virtual void cv::ml::DTrees::setUseSurrogates ( bool  val)
pure virtual
Python
cv.ml.DTrees.setUseSurrogates(val) -> None

另请参阅
getUseSurrogates

该类的文档从以下文件生成