ツール
[決定木]


マクロ定義

#define F_ML_DTREE_NO_CHILD   (-1)
#define F_ML_DTREE_NO_PARENT   (-2)
#define F_ML_DTREE_NODE_ROOT   (1)
#define F_ML_DTREE_NODE_INTERNAL   (2)
#define F_ML_DTREE_NODE_LEAF   (3)

関数

INT FVALGAPI fnFIE_ml_get_dtree_train_param (FHANDLE hMl, INT *max_depth, INT *min_node_sample, INT *k_fold, INT *pruning_type, INT *var_type, INT *preprocess)
 決定木の学習時パラメータを取得する
INT FVALGAPI fnFIE_ml_dtree_get_height (FHANDLE hDtree, INT *tree_height)
 決定木の高さを取得する
INT FVALGAPI fnFIE_ml_dtree_get_node_num (FHANDLE hDtree, INT *node_num)
 決定木のノード数の取得
INT FVALGAPI fnFIE_ml_dtree_get_child (FHANDLE hDtree, INT node_no, INT *left_child_no, INT *right_child_no)
 指定されたノードの子ノードの番号を取得する
INT FVALGAPI fnFIE_ml_dtree_get_parent (FHANDLE hDtree, INT node_no, INT *parent_no)
 指定されたノードの親ノードの番号を取得する
INT FVALGAPI fnFIE_ml_dtree_get_node_info (FHANDLE hDtree, INT node_no, INT *node_type, INT *node_depth)
 指定されたノードの情報を取得する
INT FVALGAPI fnFIE_ml_dtree_get_decided_val (FHANDLE hDtree, INT node_no, INT *decided_val)
 指定されたノードにおける出力値を取得する
INT FVALGAPI fnFIE_ml_dtree_get_criteria (FHANDLE hDtree, INT node_no, INT *vec_index, DOUBLE **criteria, INT *criteria_num)
 指定されたノードにおける分岐基準を取得する

マクロ定義

#define F_ML_DTREE_NO_CHILD   (-1)

決定木の構造取得時定数 このノードは子ノードを持たない

#define F_ML_DTREE_NO_PARENT   (-2)

決定木の構造取得時定数 このノードは親ノードを持たない

#define F_ML_DTREE_NODE_ROOT   (1)

決定木のノードタイプ取得時定数 ルートノード

#define F_ML_DTREE_NODE_INTERNAL   (2)

決定木のノードタイプ取得時定数 内節ノード

#define F_ML_DTREE_NODE_LEAF   (3)

決定木のノードタイプ取得時定数 葉ノード


関数

INT FVALGAPI fnFIE_ml_get_dtree_train_param ( FHANDLE  hMl,
INT *  max_depth,
INT *  min_node_sample,
INT *  k_fold,
INT *  pruning_type,
INT *  var_type,
INT *  preprocess 
)

決定木の学習時パラメータを取得する

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

取得できるパラメータは、決定木の学習開始時に指定した木の深さの上限値、 決定木の最小サンプル数、枝刈りのタイプ、交差検定の値、特徴ベクトルのタイプ、 学習時の前処理指定パラメータです。

本関数で取得するのは、学習開始時に指定されたパラメータです。そのため、 構成された決定木の実際のパラメータとは異なる可能性があることに注意してください。

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

引数:
[in] hMl 情報を取得する決定木オブジェクト
[out] max_depth 学習時に指定した決定木の深さの上限
[out] min_node_sample 学習時に指定した決定木の最小サンプル数
[out] k_fold 学習時に指定したk-交差検定の値
[out] pruning_type 学習時に指定した枝刈りのタイプ
[out] var_type 学習時に指定した特徴ベクトルのタイプ
[out] preprocess 学習時に指定した前処理指定パラメータ
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 入力された教師データオブジェクトが不正
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_ml_dtree_get_height ( FHANDLE  hDtree,
INT *  tree_height 
)

決定木の高さを取得する

hDtree で指定した決定木の高さを取得します

ここで取得できる高さは、 fnFIE_ml_get_dtree_train_param() で取得できる ものと異なり、実際に学習を通じて構成された決定木の高さになります。

引数:
[in] hDtree 情報を取得する決定木オブジェクト
[out] tree_height 決定木の高さ
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 入力された学習オブジェクトが不正
F_ERR_INVALID_PARAM 入力されたパラメータが不正
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_ml_dtree_get_node_num ( FHANDLE  hDtree,
INT *  node_num 
)

決定木のノード数の取得

hDtree で指定した決定木を構成するノードの数を取得します。
他の実行結果取得関数において、ノード番号を指定する場合は、 0〜(ノード数-1)がノード番号の範囲となります。

引数:
[in] hDtree 情報を取得する決定木オブジェクト
[out] node_num 決定木を構成するノードの数
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 入力された学習オブジェクトが不正
F_ERR_INVALID_PARAM 入力されたパラメータが不正
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_ml_dtree_get_child ( FHANDLE  hDtree,
INT  node_no,
INT *  left_child_no,
INT *  right_child_no 
)

指定されたノードの子ノードの番号を取得する

node_no で指定したノードの、子ノードの番号を取得します

left_child_no には指定したノードの左分岐側のノード、right_child_no には 右分岐側のノードの番号が出力されます。指定されたノードが子を持たないノードの場合は、 それぞれ F_ML_DTREE_NO_CHILD が設定されます。

出力先の引数( left_child_no , right_child_no )は NULLポインタチェックがされるため、不要なものはNULL指定が可能です。また、出力先の引数がすべてNULLで あっても、エラーにはならず正常終了します。

引数:
[in] hDtree 決定木オブジェクト
[in] node_no 対象ノードの番号
[out] left_child_no 対象ノードの左分岐子ノードの番号
[out] right_child_no 対象ノードの右分岐子ノードの番号
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 入力された学習オブジェクトが不正
F_ERR_INVALID_PARAM 入力されたパラメータが不正
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_ml_dtree_get_parent ( FHANDLE  hDtree,
INT  node_no,
INT *  parent_no 
)

指定されたノードの親ノードの番号を取得する

node_no で指定したノードの、親ノードの番号を取得します。 指定されたノードが親を持たないノードの場合は、 F_ML_DTREE_NO_PARENT が設定されます。

引数:
[in] hDtree 決定木オブジェクト
[in] node_no 対象ノードの番号
[out] parent_no 対象ノードの親ノードの番号
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 入力された学習オブジェクトが不正
F_ERR_INVALID_PARAM 入力されたパラメータが不正
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_ml_dtree_get_node_info ( FHANDLE  hDtree,
INT  node_no,
INT *  node_type,
INT *  node_depth 
)

指定されたノードの情報を取得する

node_no で指定したノードの各種情報を取得します。取得可能な情報は ノードタイプ、ノードの深さ、です。

出力先の引数( node_type , node_depth )は NULLポインタチェックがされるため、不要なものはNULL指定が可能です。また、出力先の引数がすべてNULLで あっても、エラーにはならず正常終了します。

引数:
[in] hDtree 決定木オブジェクト
[in] node_no 対象ノードの番号
[out] node_type 対象ノードのタイプ
  • F_ML_DTREE_NODE_ROOT ルートノード
  • F_ML_DTREE_NODE_INTERNAL 内節ノード
  • F_ML_DTREE_NODE_LEAF 葉ノード
[out] node_depth 対象ノードの深さ
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 入力された学習オブジェクトが不正
F_ERR_INVALID_PARAM 入力されたパラメータが不正
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_ml_dtree_get_decided_val ( FHANDLE  hDtree,
INT  node_no,
INT *  decided_val 
)

指定されたノードにおける出力値を取得する

hDtree で指定したノードにおける出力値(予測の最終判定値)を取得します。 出力値が定義されないようなノードを指定した場合は F_ERR_NODATA を返却します。

引数:
[in] hDtree 決定木オブジェクト
[in] node_no 対象ノードの番号
[out] decided_val ノードの出力値
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 入力された学習オブジェクトが不正
F_ERR_INVALID_PARAM 入力されたパラメータが不正
F_ERR_NODATA 指定されたノードが出力値を持たない
F_ERR_NO_LICENCE ライセンスエラー、または未初期化エラー

INT FVALGAPI fnFIE_ml_dtree_get_criteria ( FHANDLE  hDtree,
INT  node_no,
INT *  vec_index,
DOUBLE **  criteria,
INT *  criteria_num 
)

指定されたノードにおける分岐基準を取得する

node_no で指定したノードにおける分岐基準を取得します。つまり、ある判別をしたい特徴ベクトルが このノードに到達したときに、次にどの子ノードに分岐するかの基準値です。

vec_index には、このノードの分岐で用いる特徴ベクトルの次元が出力されます。

*criteria には、このノードの分岐基準となる数値が配列として出力されます。*criteria に出力された 値の意味は、この決定木の学習で指定した教師データのタイプが数値型( F_ML_SAMPLE_NUMERICAL ) か 分類型( F_ML_SAMPLE_CATEGORICAL )かで、以下のように変わります。

  • 数値型 : 分岐に用いる特徴ベクトルの値が *criteria の値以上ならば右分岐(そうでなければ左分岐)
  • 分類型 : 分岐に用いる特徴ベクトルの値(カテゴリ)が *criteria 内にあれば右分岐(そうでなければ左分岐)

上記のように、数値型の場合は値同士の大小比較で分岐が決定します。そのため、数値型の教師データで学習 した決定木に対して本関数を実行した場合、criteria_num は必ず1になります(エラー発生時は除く)。

node_no で指定したノードが、分岐基準が定義されていないノードの場合は、 F_ERR_NODATA を返却します。

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

引数:
[in] hDtree 決定木オブジェクト
[in] node_no 対象ノードの番号
[out] vec_index 対象ノードで使用する分岐判断のベクトルの次元の値
[out] criteria 対象ノードの分岐基準の値を保持した配列
[out] criteria_num criteriaの配列サイズ
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_OBJECT 入力された学習オブジェクトが不正
F_ERR_INVALID_PARAM 入力されたパラメータが不正
F_ERR_NODATA 指定されたノードが分岐基準をもたない
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