実行
[ブースティング]


マクロ定義

#define F_ML_BOOST_STOPRATE_INVALID   (-1)

列挙型

enum  f_ml_boost_type { F_BOOST_TYPE_DISCRETE = 1, F_BOOST_TYPE_REAL = 2 }
 ブースティングのタイプ [詳細]

関数

FHANDLE FVALGAPI fnFIE_ml_do_train_boost (FHANDLE hMl_sample, INT var_type, INT boost_type, INT predictor_num, DOUBLE stop_error_rate, INT preprocess, INT train_time_sec, INT *error_code)
 Boostingによる機械学習
INT FVALGAPI fnFIE_ml_get_boost_param (FHANDLE hMl, INT *var_type, INT *boost_type, INT *predictor_num, DOUBLE *stop_error_rate, INT *preprocess, INT *create_predictor_num, DOUBLE *train_error_rate)
 Boostingによる学習パラメータを取得する

マクロ定義

#define F_ML_BOOST_STOPRATE_INVALID   (-1)

ブースティング 誤識別率による停止を考慮しない


列挙型

ブースティングのタイプ

ブースティングの種類を指定する定数です

列挙型の値:
F_BOOST_TYPE_DISCRETE  Discrete AdaBoost 学習サンプルの重みを適応的に更新し識別器を作成する、最も基本的なアルゴリズム
F_BOOST_TYPE_REAL  Real AdaBoost 弱識別器の出力が、特徴量の確率密度分布に応じて多値化されるアルゴリズム


関数

FHANDLE FVALGAPI fnFIE_ml_do_train_boost ( FHANDLE  hMl_sample,
INT  var_type,
INT  boost_type,
INT  predictor_num,
DOUBLE  stop_error_rate,
INT  preprocess,
INT  train_time_sec,
INT *  error_code 
)

Boostingによる機械学習

hMl_sample で指定された教師データを用いてBoostingによる学習を行い、 その結果を保持した学習オブジェクトのハンドルを返します。本ライブラリは 高さ1の決定木構造を弱識別器とする、AdaBoostによる学習を実装しています。

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

var_type は、 hMl_sample で指定した教師データの特徴ベクトルが 数値属性であるか、カテゴリ属性であるかを指定します。以下の値にて指定してください

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

boost_type は、AdaBoostのタイプを指定します。以下の値にて指定してください。

各々のアルゴリズムについては こちらを参照してください。

predictor_num は、学習で作成する弱識別器の数を指定します。強識別器を構成する弱識別器の数が この値に達した場合、学習を終了します。

stop_error_rate は、学習を停止する、教師データに対する誤識別率を指定します。 学習中、弱識別器を追加する度に、教師データに対する現在の強識別器の誤識別率を計算し、 その値がパラメータで指定した値以下になった場合は学習を終了します。
誤識別率による学習の終了を行わない場合は、 F_ML_BOOST_STOPRATE_INVALID を指定してください。 このときは、predictor_num で指定した弱識別器の数に達するまで学習を継続します。

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

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

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

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

経過時間の確認は、1つの弱識別器の学習が終了する度に行います。そのため、経過時間が指定した 学習時間の上限に達した場合でも、すぐに学習が打ち切られないケースがある事に注意して下さい。

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

引数:
[in] hMl_sample 学習に用いる教師データ教師データオブジェクトのハンドル
[in] var_type 教師データの特徴ベクトルの属性
[in] boost_type AdaBoostのタイプ
[in] predictor_num 作成する弱識別器の上限値 (1 <= predictor_num)
[in] stop_error_rate 学習を終了する教師データに対する誤識別率 (0.0 <= stop_error_rate <= 1.0 または F_ML_BOOST_STOPRATE_INVALID )
[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_boost_param ( FHANDLE  hMl,
INT *  var_type,
INT *  boost_type,
INT *  predictor_num,
DOUBLE *  stop_error_rate,
INT *  preprocess,
INT *  create_predictor_num,
DOUBLE *  train_error_rate 
)

Boostingによる学習パラメータを取得する

hMl で指定したBoostingのパラメータを取得します。

取得できるパラメータは、特徴ベクトルのタイプ、Boostingのタイプ、 指定した弱識別器の上限数、指定した停止条件となる誤識別率、 学習時の前処理指定パラメータ、学習した結果生成された弱識別器の数、 学習した強識別器の教師データに対する誤識別率です。

出力先の引数は全てNULLポインタチェックがされるため、必要の無いものについてはNULL指定が可能です。 このとき、 hMl 以外のパラメータがNULLであっても、エラーにはならず正常終了します。

引数:
[in] hMl 情報を取得するBoostingオブジェクト
[out] var_type 学習時に指定した特徴ベクトルのタイプ
[out] boost_type 学習時に指定したBoostingのタイプ
[out] predictor_num 学習時に指定した弱識別器の上限数
[out] stop_error_rate 学習時に指定した停止条件となる誤識別率
[out] preprocess 学習時に指定した前処理指定パラメータ
[out] create_predictor_num 学習した結果生成された弱識別器の数
[out] train_error_rate 学習した強識別器の教師データに対する誤識別率
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 入力された教師データオブジェクトが不正
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