このクラスは単一の決定木、または決定木の集合を表す。 続き...
#include <opencv2/ml.hpp>
このクラスは単一の決定木、または決定木の集合を表す。
このクラスの現在の公開インターフェースでは、ユーザーは単一の決定木のみを学習できる。ただし、このクラスは複数の決定木を保持し、それらを予測に使用する (応答を合計するか投票方式を用いる) ことができ、DTrees から派生したクラス (RTrees や Boost など) は、この機能を利用して決定木のアンサンブルを実装している。
- 参照
- 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 |
◆ 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 |
◆ 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 |
◆ 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()
| 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 |
◆ 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 |
◆ 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 |
◆ 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 |
このクラス詳解は次のファイルから抽出されました: