2011-12-22 20 views
1

いくつかのジェスチャ認識ソフトウェアでは、matlab関数classregtreeを使用して認識ツリーを構築したいと考えています。Matlab classregtree多次元行列

ジェスチャのみのバイナリイメージがある場合、x軸とy軸の2つの強度スペクトルを作成します。これらのスペクトルからいくつかのデータを抽出し、それを使ってclassregtreeを構築します。私が使用するデータの例は、スペクトルの幅、スパイクの数、ジェスチャーの総面積です。しかし、私はまた、可変数のパラメータを有するデータを使用したい。私はclassregtreeのパラメータとしてスペクトル内の個々のスパイクの高さを使用したい。しかし、classregtreeはすべてのデータセットに対して固定数のdoubleを必要としますが、スパイクの数、したがって渡す変数の数は可変です。このデータを使用する最良の方法は何ですか?私はちょうど固定数のパラメータを使用し、値を作成できない場合は0の値を渡すことができます(たとえば、私は常に10個のスパイクの値を渡しますが、10未満の場合は0になります)。それがうまくいかないことを恐れている。

答えて

1

問題を処理する通常の方法は、ヒストグラムを作成することです。ヒストグラムの優れた特性は、常に同じサイズを持つことです。

たとえば、histcを使用してスパイクの高さのヒストグラムを作成できます(固定ビニングあり)。

+0

これは本質的に正しい値ではないすべての値に対して0の値を渡しているのですか?値が見つからない場合は、空のビンが得られます。ところで、私は忘れてしまったが、スパイクの数はかなり少なく(通常10以下)、値の広がりはかなり大きいが、非常に重要である。ヒストグラムを作成すると、0と1の値を持つビンだけが得られるでしょう。 – Tiddo

+0

これは実際とは大きく異なります。たとえば、2つの信号[0.1 0.9 0.1 0.9]と[0.1 0.1]がある場合。あなたの処方では、[0.1 0.9 0.1 0.9]と[0.1 0.1 0 0]で記述されます。ヒストグラム(3ビン[0 1/3 2/3 1])を使用すると、表現は[2 0 2]と[2 0 0]になります。 – Oli

+0

しかし、私の状況では2値はほぼ同じ値になることはめったにありません。したがって、[0.1 0.9 0.1 0.9]のセットはおそらく発生しません。信号は[0.1 0.4 0.9]のようなものになります。これらの値を2つにまとめると、結果は大きく変化します。しかし、私はそれらを一緒にグループ化することができるので、(前に考えていたはずだった)価値の違いを使うことができるかもしれません。 – Tiddo

0

任意の値(ゼロなど)で塗りつぶすとうまくいきません。合理的に信頼できるスパイクがいくつあるのかを十分に伝えれば十分なデータがある場合は、スパイク数ごとに別々のツリーを構築してみてください。