2016-10-09 5 views
0

私は、クラシファイアの作成にopencv Decision Treeを使用しています。私はそれが新しいデータを追加するそのモデル(保存することができ、.ymlファイルに読み込むことができる)を再学習することが可能かどうかを知りたいです。私が使っているOpencvのバージョンは2.4です。私はこの新しいデータで既存のopencvモデルを学習する

CvDTree dtree; 
dtree.load("existingTree.yml"); 
dtree.train(newValues, CV_ROW_SAMPLE, newResponses); 

newValuesような何かに考えていた

は、新しいサンプルが含まれているとnewResponsesは、その値のためのクラスが含まれています。これは、最初のトレーニングプロセスとこの新しいプロセスの古い値でトレーニングされた新しいデシジョンツリーを生成しますか?

これについてopencvのマニュアルに関する情報は見つかりませんでした。

+0

直感から、既存のdt(新しい訓練で使用される)から同じサンプルを高速に作成する必要があります。しかし、本当に直感 – Micka

答えて

0

短い答え:いいえ

ロング答えは:決定木が大きなトレーニングセットを渡されたトレーニング、中には、ツリー内の各分割ノードは、機能セットと対応するしきい値を学習します。木の枝は葉ノードで終了し、次に葉ノードが予測値を格納する。既に意思決定ツリーを訓練している場合は、トレーニングセットからすべてのフィーチャ、しきい値および予測値を既に学習しています。追加のデータを使用して再度トレーニングすると、以前学習されたパラメータは役に立たなくなります。

これを見る別の方法は、ツリーのアンサンブルによって形成されるランダムフォレストを考えることです。あなたの新しいデータセットが、モデルが以前に見たデータとあまり変わらないことを考えれば、あなたが望むならば、新しい木を訓練し、以前に訓練された木の群にそれを加えることができます。予測中は、すべてのツリーの予測を平均して全体的な予測を得ることができます。

関連する問題