実行
[ナイーブベイズ分類器]


列挙型

enum  f_ml_nb_type {
  F_ML_NB_GAUSSIAN = 1, F_ML_NB_MULTINOMIAL_MULTIVARIATE = 2,
  F_ML_NB_MULTINOMIAL = 3
}
 ナイーブベイズ分類器の尤度のタイプ [詳細]
enum  f_ml_nb_prior_type { F_ML_NB_PRIOR_UNIFORM = 0, F_ML_NB_PRIOR_PROPORTION = 1 }
 ナイーブベイズ分類器の事前分布のタイプ [詳細]

関数

FHANDLE FVALGAPI fnFIE_ml_do_train_naivebayes (FHANDLE hMl_sample, enum f_ml_nb_type likelihood_type, enum f_ml_nb_prior_type prior_type, DOUBLE alpha, INT preprocess, INT train_time_sec, INT *error_code)
 ナイーブベイズ分類器による機械学習
INT FVALGAPI fnFIE_ml_get_naivebayes_param (FHANDLE hMl, enum f_ml_nb_type *likelihood_type, enum f_ml_nb_prior_type *prior_type, DOUBLE *alpha, INT *preprocess)
 ナイーブベイズ分類器による学習パラメータを取得する
INT FVALGAPI fnFIE_ml_naivebayes_predict_probability (FHANDLE hMl, DOUBLE *feature_vec, DOUBLE *responses)
 ナイーブベイズ分類器による、出力クラスの生起確率の予測
INT FVALGAPI fnFIE_ml_naivebayes_get_class_labels (FHANDLE hMl, INT **labels, INT *num_labels)
 ナイーブベイズ分類器の学習で使用されたクラスラベルの一覧を取得する
INT FVALGAPI fnFIE_ml_naivebayes_get_class_prior (FHANDLE hMl, DOUBLE *prior)
 ナイーブベイズ分類器による、出力クラスの事前確率の取得
INT FVALGAPI fnFIE_ml_naivebayes_get_likelihood_params (FHANDLE hMl, INT label, INT feature_idx, DOUBLE **params, INT *num_params)
 ナイーブベイズ分類器で学習された尤度モデルのパラメータを取得する

列挙型

ナイーブベイズ分類器の尤度のタイプ

ナイーブベイズ分類器の学習で用いる尤度の種類を設定する定数です

列挙型の値:
F_ML_NB_GAUSSIAN  正規分布。特徴ベクトルは数値属性である必要があります
F_ML_NB_MULTINOMIAL_MULTIVARIATE  多変量多項分布。特徴ベクトルはカテゴリ属性である必要があります
F_ML_NB_MULTINOMIAL  多項分布。特徴ベクトルは非負の実数であるヒストグラムである必要があります

ナイーブベイズ分類器の事前分布のタイプ

ナイーブベイズ分類器の学習で用いる事前分布の種類を設定する定数です

列挙型の値:
F_ML_NB_PRIOR_UNIFORM  一様分布を仮定します
F_ML_NB_PRIOR_PROPORTION  クラスごとの教師データ数の比率により推定します


関数

FHANDLE FVALGAPI fnFIE_ml_do_train_naivebayes ( FHANDLE  hMl_sample,
enum f_ml_nb_type  likelihood_type,
enum f_ml_nb_prior_type  prior_type,
DOUBLE  alpha,
INT  preprocess,
INT  train_time_sec,
INT *  error_code 
)

ナイーブベイズ分類器による機械学習

hMl_sample で指定された教師データを用いてナイーブベイズ分類器による学習を行い、 その結果を保持した学習オブジェクトのハンドルを返します。

hMl_sample には、学習で用いる教師データを設定した教師データオブジェクトを 設定します。hMl_sample には2クラス以上の教師データが設定されている必要があります。 2クラス以上の教師データが設定されていない場合、返却されるハンドルはNULLとなります。 また、エラーコードには F_ERR_CALC_IMPOSSIBLE が出力されます。

likelihood_type は、学習で用いる尤度のタイプ(モデル)を指定します。以下の値にて指定してください。

  • F_ML_NB_GAUSSIAN
    尤度は正規分布に従います。教師データの特徴ベクトルは数値属性である必要があります

  • F_ML_NB_MULTINOMIAL_MULTIVARIATE
    尤度は多変量の多項分布に従います。教師データの特徴ベクトルはカテゴリ属性である必要があります

  • F_ML_NB_MULTINOMIAL
    尤度は多項分布に従います。教師データの特徴ベクトルは非負の実数であるヒストグラムである必要があります

教師データの属性については、 こちらを参照してください。 なお、特徴ベクトルの属性にカテゴリ属性を指定した場合、特徴ベクトルの値は全て整数値である必要があります。 そのため、特徴ベクトルに小数点以下の値が含まれていた場合、小数点以下の値は切り捨てられ、 整数値のベクトルとして扱われます。
その際、内部で教師データオブジェクトのコピーを作成し、そのデータに対して処理を行います。 そのため、入力の hMl_sample は変更されません。

prior_type は、学習で用いる事前分布のタイプを指定します。以下の値にて指定してください。

alpha は、特定の条件で出力確率が0となる問題に対応するためのスケーリング係数αを指定します。 尤度として多変量多項分布または多項分布を指定した場合に使用されます。 0以上の実数を指定可能であり、推奨値は1となります。 詳細については、 特徴量が一定値になる場合の対策を参照してください。

preprocess は学習を開始する前に、与えられた教師データに行う前処理を指定します。
値は以下のdefineをORで指定します。それ以外の値は無視されるので注意してください。 また、前処理が不要な場合は0を指定してください。

教師データの特徴ベクトルがカテゴリ属性で合った場合は、事前処理の指定は無視されます。
なお、教師データに対する前処理を行う際は、内部で教師データオブジェクトのコピーを 作成し、そのデータに対して処理を行います。そのため、入力の hMl_sample は変更されません。

train_time_sec は 学習時間の上限値を秒単位で設定します。この値が設定されていた場合、 内部で学習開始からの経過時間の監視を行います。指定された時間を経過した場合、 学習を打ち切り、処理を終了します。学習の打ち切りが発生した場合、返却されるハンドルはNULLとなります。 また、エラーコードには F_ERR_TIMEOUT が出力されます。

学習時間の監視が不要な場合は train_time_sec に0を設定します。このときは、 終了条件が成立するまで、無制限に学習を続けます。

error_code には、学習を行った際のエラーコードが出力されます。学習が正常終了した場合は F_ERR_NONE が 出力されます。なお、エラーコードを受け取る必要が無い場合はNULLを指定してください。

引数:
[in] hMl_sample 学習に用いる教師データ教師データオブジェクトのハンドル
[in] likelihood_type 尤度のタイプ
[in] prior_type 事前分布のタイプ
[in] alpha スケーリング係数α (0 <= alpha)
[in] preprocess 学習の前処理指定パラメータ
[in] train_time_sec 学習時間の上限値(単位:秒) 指定しない場合は0
[out] error_code エラー発生時のエラーコード エラーコードを受け取る必要の無い場合は、NULLを指定します。
  • F_ERR_NONE 正常終了
  • F_ERR_INVALID_PARAM 入力されたパラメータが不正
  • F_ERR_INVALID_OBJECT 入力された教師データオブジェクトが不正
  • F_ERR_TIMEOUT 指定された学習時間内で学習が終了しなかった
  • F_ERR_NOMEMORY メモリ不足による領域確保エラー
  • F_ERR_CALC_IMPOSSIBLE 計算不能エラー
  • F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー
戻り値:
確保された機械学習オブジェクトのハンドル エラーにより学習に失敗した場合はNULLを返します
参照:
fnFIE_ml_predict()

INT FVALGAPI fnFIE_ml_get_naivebayes_param ( FHANDLE  hMl,
enum f_ml_nb_type likelihood_type,
enum f_ml_nb_prior_type prior_type,
DOUBLE *  alpha,
INT *  preprocess 
)

ナイーブベイズ分類器による学習パラメータを取得する

hMl で指定したナイーブベイズ分類器のパラメータを取得します。

取得できるパラメータは、尤度のタイプ、事前分布のタイプ、 スケーリング係数α、学習時の前処理指定パラメータです。 出力先のパラメータのうち必要のないものはNULLを指定してください。

引数:
[in] hMl 情報を取得するナイーブベイズ分類器オブジェクト
[out] likelihood_type 尤度のタイプ
[out] prior_type 事前分布のタイプ
[out] alpha スケーリング係数α
[out] preprocess 学習時に指定した前処理指定パラメータ
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 入力された教師データオブジェクトが不正
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_ml_naivebayes_predict_probability ( FHANDLE  hMl,
DOUBLE *  feature_vec,
DOUBLE *  responses 
)

ナイーブベイズ分類器による、出力クラスの生起確率の予測

hMl で指定したナイーブベイズ分類器オブジェクトの学習内容に基づいて、 入力された特徴ベクトルに対するクラスごとの生起確率を予測し、その確率値を responses に出力します。

入力する特徴ベクトルは、feature_vec で指定します。特徴ベクトルの次元数、 すなわち feature_vec の配列のサイズは、hMl の学習で用いた特徴ベクトルの サイズ以上でなければなりません。 学習で用いた特徴ベクトルのサイズは、 fnFIE_ml_get_common_param() にて 取得することができます。

生起確率は学習で用いたすべてのクラスについて出力されます。 そのため responses の配列のサイズは、hMl の学習で用いたクラス数以上でなければなりません。

生起確率の出力順は、クラスラベルの昇順となります。 すなわち responses のi番目の要素には、i番目に小さなクラスラベルをもつクラスに対する生起確率が格納されます。

引数:
[in] hMl ナイーブベイズ分類器オブジェクト
[in] feature_vec 確率計算の対象とするベクトル
[out] responses クラスごとの生起確率
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 入力されたパラメータが不正
F_ERR_INVALID_OBJECT 入力された教師データオブジェクトが不正
F_ERR_NOMEMORY メモリ不足のため計算不能エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_ml_naivebayes_get_class_labels ( FHANDLE  hMl,
INT **  labels,
INT *  num_labels 
)

ナイーブベイズ分類器の学習で使用されたクラスラベルの一覧を取得する

hMl で指定したナイーブベイズ分類器オブジェクトの学習で使用された クラスラベルの一覧を labels に、クラス数を num_labels に出力します。

クラスラベルの出力順は昇順となります。 すなわち *labels のi番目の要素には、i番目に小さなクラスラベルが格納されます。

*labels に出力する配列に必要なメモリは、関数内部で確保します。そのため、*labels は NULLでなければなりません。また、*labels は、不要になった場合は fnOAL_free() にて 確実に解放してください。

引数:
[in] hMl ナイーブベイズ分類器オブジェクト
[out] labels クラスラベルの一覧
[out] num_labels 学習で使用されたクラス数
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 入力されたパラメータが不正
F_ERR_INVALID_OBJECT 入力された教師データオブジェクトが不正
F_ERR_NOMEMORY メモリ不足のため計算不能エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_ml_naivebayes_get_class_prior ( FHANDLE  hMl,
DOUBLE *  prior 
)

ナイーブベイズ分類器による、出力クラスの事前確率の取得

hMl で指定したナイーブベイズ分類器オブジェクトの学習内容に基づいて、 クラスごとの事前確率をprior に出力します。

事前確率は学習で用いたすべてのクラスについて出力されます。 そのため prior の配列のサイズは、hMl の学習で用いたクラス数以上でなければなりません。

事前確率の出力順は、クラスラベルの昇順となります。 すなわち prior のi番目の要素には、i番目に小さなクラスラベルをもつクラスに対する事前確率が格納されます。

引数:
[in] hMl ナイーブベイズ分類器オブジェクト
[out] prior クラスごとの事前確率
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 入力されたパラメータが不正
F_ERR_INVALID_OBJECT 入力された教師データオブジェクトが不正
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_ml_naivebayes_get_likelihood_params ( FHANDLE  hMl,
INT  label,
INT  feature_idx,
DOUBLE **  params,
INT *  num_params 
)

ナイーブベイズ分類器で学習された尤度モデルのパラメータを取得する

hMl で指定したナイーブベイズ分類器オブジェクトの尤度分布モデルのパラメータを params に出力します。

分布パラメータは、クラスラベルごと、特徴要素ごとに出力されます。 label でクラスラベルを、 feature_idx で特徴要素を指定します。 学習ラベルに含まれないクラスラベルや、特徴次元の範囲を超えた要素を指定した場合はエラーとなります。

出力される尤度分布パラメータは、このナイーブベイズ分類器の学習で指定した尤度分布のタイプによって異なります。 分布パラメータの詳細については ナイーブベイズ分類器の学習 を参照してください。 パラメータの個数もタイプによって異なるため、個数が num_params に出力されます。 タイプごとのパラメータの詳細は次の通りです。

  • 正規分布 F_ML_NB_GAUSSIAN
    パラメータは平均と標準偏差の2つとなります。*params[0]に平均が、*params[1]に標準偏差が出力され、 num_params には2が出力されます。

  • 多変量多項分布 F_ML_NB_MULTINOMIAL_MULTIVARIATE
    パラメータはカテゴリごとの生起確率となります。 学習で使用されたfeature_idx 番目の特徴要素のカテゴリ数がnである場合、num_params にはnが出力されます。 *params のi番目には、カテゴリ属性の特徴の値を数値として解釈したときに、i番目に小さな値となるカテゴリの生起確率が出力されます。

  • 多項分布 F_ML_NB_MULTINOMIAL
    パラメータは feature_idx 番目のデータの生起確率となります。 num_params には1が出力されます。

*params に出力する配列に必要なメモリは、関数内部で確保します。そのため、*params は NULLでなければなりません。また、*params は、不要になった場合は fnOAL_free() にて 確実に解放してください。

引数:
[in] hMl ナイーブベイズ分類器オブジェクト
[in] label 対象となるクラスラベル
[in] feature_idx 対象となる特徴要素の番号
[out] params 対象となる尤度パラメータを保持した配列
[out] num_params params の配列サイズ
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM 入力されたパラメータが不正
F_ERR_INVALID_OBJECT 入力された教師データオブジェクトが不正
F_ERR_NOMEMORY メモリ不足のため計算不能エラー
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー


Documentation copyright © 2009-2024 FAST Corporation.
Generated on Fri Aug 9 16:38:48 2024 for FIEライブラリ by doxygen 1.5.6-FASTSP-p2