機械学習 リファレンス マニュアル
最終変更者: 怡土順一, 最終変更リビジョン: 467, 最終変更日時: 2009-06-23 14:23:34 +0900 (火, 23 6月 2009)
- イントロダクション,共通のクラスと関数(Introduction. Common classes and functions)
- ナイーブベイズ(単純ベイズ)分類器(Normal Bayes Classifier)
- K近傍法(K Nearest Neighbors)
- サポートベクターマシン(SVM)
- 決定木(Decision Trees)
- ブースティング(Boosting)
- ランダムツリー(Random Trees)
- EMアルゴリズム(Expectation-Maximization)
- ニューラルネットワーク(Neural Networks)
ナイーブベイズ(単純ベイズ)分類器(Normal Bayes Classifier)
これは,各クラスの特徴ベクトルが正規分布である事を仮定した(とはいえ,必ずしも独立に分布している必要はない)単純な分類モデルである. 従って,全てのデータ分布関数は,一つのクラスに対して一つのコンポーネントの混合ガウス分布で表現できると仮定される. このアルゴリズムは,学習データを用いて各クラスの平均ベクトルと共変動行列を推定し,それらによる予測を行う.[Fukunaga90] K. Fukunaga. Introduction to Statistical Pattern Recognition. second ed., New York: Academic Press, 1990.
CvNormalBayesClassifier
正規分布データに対するベイズ分類器クラス
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: ... };
CvNormalBayesClassifier::train
モデルを学習する
bool CvNormalBayesClassifier::train(const CvMat* _train_data, const CvMat* _responses,
const CvMat* _var_idx = 0, const CvMat* _sample_idx=0, bool update=false );
このメソッドは,ナイーブベイズ(単純ベイズ)分類器(Normal Bayes classifier)を学習する. これは以下の制限を持つ一般的なtrain「メソッド」 の仕様に従う. CV_ROW_SAMPLE データレイアウトのみサポートされる,入力変数は全て連続変数であり,出力変数はカテゴリ変数である (つまりベクトルが 32fC1 型だとしても, _responses の要素は整数でなければならない),データ欠損はサポートされない).
さらに,モデルを最初から学習する(update=false)か,新しい学習データを用いて更新する(update=true)か, を示すupdate フラグが存在する.
CvNormalBayesClassifier::predict
サンプルに対する応答を予測する
float CvNormalBayesClassifier::predict(const CvMat* samples, CvMat* results=0 ) const;
メソッド predictは,入力ベクトルに対する最も可能性の高いクラスを推定する. 入力ベクトル(一つ以上)は,行列samples の行として保存される. 入力ベクトルが複数の場合は,出力ベクトルresultsを指定しなければならない. 一つの入力ベクトルに対して予測されたクラスは,メソッドの戻り値になる.