OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
cv::ml::DTrees クラスabstract

このクラスは単一の決定木、または決定木の集合を表す。 続き...

#include <opencv2/ml.hpp>

Collaboration diagram for cv::ml::DTrees:

クラス

class  Node
 このクラスは決定木のノードを表す。続きを読む...
 
class  Split
 このクラスは決定木における分岐を表す。続きを読む...
 

公開型

enum  Flags {
  PREDICT_AUTO =0 ,
  PREDICT_SUM =(1<<8) ,
  PREDICT_MAX_VOTE =(2<<8) ,
  PREDICT_MASK =(3<<8)
}
 
- Public Types inherited from cv::ml::StatModel
enum  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
 
- Public Member Functions inherited from 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)
 統計モデルを学習する。
 
- Public Member Functions inherited from 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
 
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 を読み込んで生成する。
 
- Static Public Member Functions inherited from cv::ml::StatModel
template<typename _Tp >
static Ptr< _Tptrain (const Ptr< TrainData > &data, int flags=0)
 デフォルト引数でモデルを生成して学習する。
 
- Static Public Member Functions inherited from 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)
 ファイルノードからアルゴリズムを読み込む。
 

Additional Inherited Members

- Protected Member Functions inherited from cv::Algorithm
void writeFormat (FileStorage &fs) const
 

詳細説明

このクラスは単一の決定木、または決定木の集合を表す。

このクラスの現在の公開インターフェースでは、ユーザーは単一の決定木のみを学習できる。ただし、このクラスは複数の決定木を保持し、それらを予測に使用する (応答を合計するか投票方式を用いる) ことができ、DTrees から派生したクラス (RTreesBoost など) は、この機能を利用して決定木のアンサンブルを実装している。

参照
Decision Trees

列挙型メンバ詳解

◆ Flags

予測オプション

列挙値
PREDICT_AUTO 
PREDICT_SUM 
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-fold 交差検証手法を用いて構築済みの決定木を枝刈りする。ここで 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 > max_categories であるカテゴリ変数に対する n > 2 クラス分類問題でのみ適用される。回帰および 2 クラス分類の場合は、クラスタリングを用いずに最適な分割を効率的に求められるため、これらの場合にはこの引数は使用されない。デフォルト値は 10。

参照
setMaxCategories

◆ getMaxDepth()

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

木の取り得る最大の深さ。すなわち、学習アルゴリズムはノードの深さが maxDepth 未満である間、ノードの分割を試みる。ルートノードの深さは 0 である。他の終了条件が満たされた場合 (学習手続きの概要はこちらを参照)、あるいは木が枝刈りされた場合、実際の深さはこれより小さくなることがある。デフォルト値は 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 やそれ以上にまで) priors を指定でき、これにより誤分類された異常の重みがはるかに大きくなり、木が適切に調整される。

この引数は予測カテゴリの重みとして捉えることもできる。これは誤分類に与える相対的な重みを決定する。すなわち、第1カテゴリの重みが1で第2カテゴリの重みが10の場合、第2カテゴリの予測ミス1回は、第1カテゴリの予測ミス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

true の場合、枝刈りされた枝は木から物理的に削除される。そうでない場合は保持され、元の枝刈りされていない (または枝刈りの度合いが弱い) 木から結果を得ることができる。デフォルト値は true。

参照
setTruncatePrunedTree

◆ getUse1SERule()

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

true の場合、枝刈りがより厳しくなる。これにより木はよりコンパクトになり、学習データのノイズに対してより頑健になるが、精度は若干低下する。デフォルト値は true。

参照
setUse1SERule

◆ getUseSurrogates()

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

true の場合、代理分割 (surrogate split) が構築される。これらの分割により、欠損データを扱い、変数の重要度を正しく計算できるようになる。デフォルト値は false。

覚え書き
現在は未実装である。
参照
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 をディスクにシリアライズして保存するには DTree::save を使用する。ファイルへのパスを指定してこの関数を呼び出すことで、このファイルから 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

◆ 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

◆ 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

◆ setTruncatePrunedTree()

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

◆ setUse1SERule()

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

◆ setUseSurrogates()

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

このクラス詳解は次のファイルから抽出されました: