単純ベイズ分類器 ======================== .. highlight:: cpp これは,各クラスの特徴ベクトルが正規分布する事を仮定した(とはいえ,必ずしも独立に分布している必要はありません)単純な分類モデルです.したがって,全体的なデータ分布関数は,1クラスに対して1成分の混合ガウス分布で表現できると仮定されます.このアルゴリズムは,学習データを用いて各クラスの平均ベクトルと共分散行列を推定し,それらを用いた予測を行います. **[Fukunaga90] K. Fukunaga. Introduction to Statistical Pattern Recognition. second ed., New York: Academic Press, 1990.** .. index:: CvNormalBayesClassifier .. _CvNormalBayesClassifier: CvNormalBayesClassifier ----------------------- `id=0.406780173916 Comments from the Wiki `__ .. ctype:: CvNormalBayesClassifier 正規分布するデータに対するベイズ分類器. .. code-block:: c class CvNormalBayesClassifier : public CvStatModel { public: CvNormalBayesClassifier(); virtual ~CvNormalBayesClassifier(); CvNormalBayesClassifier( const CvMat* _train_data, const CvMat* _responses, const CvMat* _var_idx=0, const CvMat* _sample_idx=0 ); virtual bool train( const CvMat* _train_data, const CvMat* _responses, const CvMat* _var_idx = 0, const CvMat* _sample_idx=0, bool update=false ); virtual float predict( const CvMat* _samples, CvMat* results=0 ) const; virtual void clear(); virtual void save( const char* filename, const char* name=0 ); virtual void load( const char* filename, const char* name=0 ); virtual void write( CvFileStorage* storage, const char* name ); virtual void read( CvFileStorage* storage, CvFileNode* node ); protected: ... }; .. .. index:: CvNormalBayesClassifier::train .. _CvNormalBayesClassifier::train: CvNormalBayesClassifier::train ------------------------------ `id=0.0466501833683 Comments from the Wiki `__ .. cfunction:: bool CvNormalBayesClassifier::train( const CvMat* _train_data, const CvMat* _responses, const CvMat* _var_idx =0, const CvMat* _sample_idx=0, bool update=false ) モデルを学習します. このメソッドは,単純ベイズ分類器の学習を行います.これは,以下の制限を持つ一般的な ``train`` 「メソッド」の形式に従います: ``CV_ROW_SAMPLE`` データレイアウトのみをサポートします.また,すべての入力変数は連続変数で,出力変数はカテゴリ変数です(つまり,ベクトルが ``CV_32FC1`` 型だとしても, ``_responses`` の要素は整数でなければいけません).そして,データ欠損はサポートされていません. さらに,モデルを一から学習する( ``update=false`` )か,新しい学習データを利用して更新する( ``update=true`` )か,を指定する ``update`` フラグが存在します. .. index:: CvNormalBayesClassifier::predict .. _CvNormalBayesClassifier::predict: CvNormalBayesClassifier::predict -------------------------------- `id=0.104716365624 Comments from the Wiki `__ .. cfunction:: float CvNormalBayesClassifier::predict( const CvMat* samples, CvMat* results=0 ) const サンプルに対する応答を予測します. ``predict`` メソッドは,入力ベクトルに対して最も可能性の高いクラスを推定します.その入力ベクトル(単数または複数)は,行列 ``samples`` の各行に格納されています.入力ベクトルが複数の場合の出力は,1つのベクトル ``results`` となります.また,単一の入力ベクトルに対して予測されたクラスは,このメソッドの戻り値になります.