マクロ定義 | |
#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 | 対象ノードのタイプ
|
[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_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 | ライセンスエラー、または未初期化エラー |