分類アルゴリズム
作成対象:
- 開発者
このドキュメントでは、高度な統計モデルでの設定、主要なパラメーター、実際の使用方法に重点を置いて、様々な分類アルゴリズムの概要を説明します。 分類アルゴリズムは、入力特性に基づいてデータポイントにカテゴリを割り当てるために使用されます。 各セクションには、デシジョンツリー、ランダムフォレスト、Naive Bayes 分類などのタスクに対してこれらのアルゴリズムを実装して最適化するのに役立つパラメーターの説明とサンプルコードが含まれています。
Decision Tree Classifier
Decision Tree Classifier は、統計、データマイニング、機械学習で使用される監視付き学習アプローチです。 このアプローチでは、デシジョンツリーを分類タスクの予測モデルとして使用し、一連の観測から結論を導き出します。
パラメーター
次の表に、Decision Tree Classifier ールのパフォーマンスの設定と最適化のための主要なパラメーターの概要を示します。
パラメーター | 説明 | デフォルト値 | 可能な値 |
---|---|---|---|
MAX_BINS | bin の最大数は、連続する機能を個別の間隔に分割する方法を決定します。 これは、各デシジョンツリーノードでの機能の分割方法に影響します。 bin が多いほど、精度が高くなります。 | 32 | 少なくとも 2 で、カテゴリ機能のカテゴリ数と等しい数である必要があります。 |
CACHE_NODE_IDS | false の場合、アルゴリズムによってツリーがエグゼキューターに渡され、インスタンスとノードが一致します。 true の場合、アルゴリズムはインスタンスごとにノード ID をキャッシュするので、より深いツリーのトレーニングが迅速になります。 | false | true 、false |
CHECKPOINT_INTERVAL | キャッシュされたノード ID のチェックポイント頻度を指定します。 例えば、10 は、キャッシュが 10 回ごとにチェックポイントされることを意味します。 | 10 | (>= 1) |
IMPURITY | 情報ゲインの計算に使用する条件(大文字と小文字を区別しない)。 | 「ジニ」 | entropy 、gini |
MAX_DEPTH | ツリーの最大深度(負でない)。 例えば、depth 0 は 1 つのリーフノードを意味し、depth 1 は 1 つの内部ノードと 2 つのリーフノードを意味します。 | 5 | (>= 0) (範囲:[0,30]) |
MIN_INFO_GAIN | 分割がツリーノードで考慮されるために必要な最小情報利得。 | 0.0 | (>= 0.0) |
MIN_WEIGHT_FRACTION_PER_NODE | 各子が分割の後に持つ必要がある重み付けされたサンプル数の最小割合。 分割によって、いずれかの子の合計重みの割合がこの値を下回った場合、その子は破棄されます。 | 0.0 | (>= 0.0, <= 0.5) |
MIN_INSTANCES_PER_NODE | 分割後に各子に必要なインスタンスの最小数。 分割の結果、この値よりもインスタンス数が少ない場合、分割は破棄されます。 | 1 | (>= 1) |
MAX_MEMORY_IN_MB | ヒストグラム集計に割り当てる最大メモリを MB 単位で指定します。 この値が小さすぎる場合、1 回のイテレーションで分割されるノードは 1 つだけで、その集計はこのサイズを超える可能性があります。 | 256 | (>= 0) |
PREDICTION_COL | 予測出力の列名。 | 「予測」 | 任意の文字列 |
SEED | ランダム シードです。 | なし | 任意の 64 ビット番号 |
WEIGHT_COL | 列名(例:重み)。 設定されていない場合や空の場合は、すべてのインスタンスの重みが 1.0 として扱われます。 | 設定されていません | 任意の文字列 |
ONE_VS_REST | マルチクラス分類の問題に使用される、このアルゴリズムの One-vs-Rest ラッピングを有効または無効にします。 | false | true 、false |
例
Create MODEL modelname OPTIONS(
type = 'decision_tree_classifier'
) AS
select col1, col2, col3 from training-dataset
Factorization Machine Classifier
Factorization Machine Classifier は、通常の勾配降下と AdamW ソルバをサポートする分類アルゴリズムです。 ファクタリング機械分類モデルは、ロジスティック損失を使用します。これは、勾配降下によって最適化でき、多くの場合、オーバーフィットを防ぐために L2 などの正規化用語を含みます。
パラメーター
Factorization Machine Classifier のパフォーマンスの設定および最適化のための主要なパラメーターの概要を次の表に示します。
パラメーター | 説明 | デフォルト値 | 可能な値 |
---|---|---|---|
TOL | 最適化の精度を制御する収束許容値。 | 1E-6 | (>= 0) |
FACTOR_SIZE | 要因のディメンション。 | 8 | (>= 0) |
FIT_INTERCEPT | インターセプト項をフィットさせるかどうかを指定します。 | true | true 、false |
FIT_LINEAR | 線形項(単方向項とも呼ばれます)を適合させるかどうかを指定します。 | true | true 、false |
INIT_STD | 係数を初期化するための標準偏差。 | 0.01 | (>= 0) |
MAX_ITER | アルゴリズムを実行する最大反復数。 | 100 | (>= 0) |
MINI_BATCH_FRACTION | トレーニング中にミニバッチで使用するデータの割合。 (0, 1] の範囲である必要があります。 | 1.0 | 0 < 値 <= 1 |
REG_PARAM | 正規化パラメーターは、モデルの複雑さを制御し、オーバーフィットを防ぐのに役立ちます。 | 0.0 | (>= 0) |
SEED | アルゴリズム内のランダムプロセスを制御するためのランダムシード。 | なし | 任意の 64 ビット番号 |
SOLVER | 最適化に使用するソルバーアルゴリズム。 サポートされるオプションは、gd (グラデーション下降)と adamW です。 | 「アダム W」 | gd 、adamW |
STEP_SIZE | 最適化の初期ステップサイズで、多くの場合、学習率と解釈されます。 | 1.0 | > 0 |
PROBABILITY_COL | 予測されるクラスの条件付き確率の列名。 メモ:すべてのモデルが適切に調整された確率を出力するわけではありません。これらは正確な確率ではなく信頼性スコアとして扱う必要があります。 | 「確率」 | 任意の文字列 |
PREDICTION_COL | 予測されるクラスラベルの列名。 | 「予測」 | 任意の文字列 |
RAW_PREDICTION_COL | 生の予測値の列名(信頼性とも呼ばれます)。 | "rawPrediction" | 任意の文字列 |
ONE_VS_REST | マルチクラス分類に対して One-vs-Rest を有効にするかどうかを指定します。 | FALSE | true 、false |
例
CREATE MODEL modelname OPTIONS(
type = 'factorization_machines_classifier'
) AS
SELECT col1, col2, col3 FROM training-dataset
Gradient Boosted Tree Classifier
Gradient Boosted Tree Classifier では、分類タスクの精度を向上させるためにデシジョンツリーのアンサンブルを使用し、モデルのパフォーマンスを向上させるために複数のツリーを組み合わせます。
パラメーター
Gradient Boosted Tree Classifier のパフォーマンスの設定および最適化のための主要なパラメーターの概要を次の表に示します。
MAX_BINS
CACHE_NODE_IDS
false
の場合、アルゴリズムによってツリーがエグゼキューターに渡され、インスタンスとノードが一致します。 true
の場合、アルゴリズムはインスタンスごとにノード ID をキャッシュするので、より深いツリーのトレーニングが迅速になります。false
true
、false
CHECKPOINT_INTERVAL
10
は、キャッシュが 10 回ごとにチェックポイントされることを意味します。MAX_DEPTH
0
は 1 つのリーフノードを意味し、depth 1
は 1 つの内部ノードと 2 つのリーフノードを意味します。MIN_INFO_GAIN
MIN_WEIGHT_FRACTION_PER_NODE
MIN_INSTANCES_PER_NODE
MAX_MEMORY_IN_MB
PREDICTION_COL
VALIDATION_INDICATOR_COL
false
はトレーニングを示し、true
は検証を示します。 値が設定されていない場合、デフォルト値は None
です。RAW_PREDICTION_COL
LEAF_COL
FEATURE_SUBSET_STRATEGY
auto
(タスクに基づいて自動的に決定される)、all
(すべてのフィーチャを使用)、onethird
(フィーチャ数の 3 分の 1 を使用)、sqrt
(フィーチャ数の平方根を使用)、log2
(フィーチャ数の二乗を使用)、n
(ここで n は、(0, 1]
の範囲内のフィーチャの一部、または [1, total number of features]
の範囲内の特定の数のフィーチャです)。auto
, all
, onethird
, sqrt
, log2
, n
WEIGHT_COL
1.0
として扱われます。LOSS_TYPE
logistic
(大文字と小文字を区別しない)STEP_SIZE
(0, 1]
のステップサイズ (学習率とも呼ばれます)は、各推定量の貢献度を小さくするために使用されます。MAX_ITER
SUBSAMPLING_RATE
(0, 1]
PROBABILITY_COL
ONE_VS_REST
false
true
、false
例
Create MODEL modelname OPTIONS(
type = 'gradient_boosted_tree_classifier'
) AS
select col1, col2, col3 from training-dataset
Linear Support Vector Classifier (LinearSVC)
Linear Support Vector Classifier (LinearSVC)は、高次元空間においてデータを分類するためにハイパープレーンを構築する。 クラス間のマージンを最大化して分類エラーを最小限に抑えるために使用できます。
パラメーター
Linear Support Vector Classifier (LinearSVC) のパフォーマンスの設定および最適化のための主要なパラメーターの概要を次の表に示します。
MAX_ITER
AGGREGATION_DEPTH
FIT_INTERCEPT
true
true
、false
TOL
MAX_BLOCK_SIZE_IN_MB
0
に設定した場合、最適な値が自動的に選択されます(通常は 1 MB 程度)。REG_PARAM
STANDARDIZATION
true
true
、false
PREDICTION_COL
RAW_PREDICTION_COL
ONE_VS_REST
false
true
、false
例
Create MODEL modelname OPTIONS(
type = 'linear_svc_classifier'
) AS
select col1, col2, col3 from training-dataset
Logistic Regression
Logistic Regression は、バイナリ分類タスクに使用される監視対象アルゴリズムです。 インスタンスがクラスに属する確率をロジスティック関数を使用してモデル化し、より高い確率でそのインスタンスをクラスに割り当てます。 これにより、データを 2 つのカテゴリのいずれかに分離することが目標となる問題に適しています。
パラメーター
Logistic Regression のパフォーマンスの設定と最適化のための主要なパラメーターの概要を次の表に示します。
MAX_ITER
REGPARAM
ELASTICNETPARAM
ElasticNet
混合パラメータは、L1 (ラッソ)ペナルティと L2 (リッジ)ペナルティのバランスを制御します。 値が 0 の場合は L2 ペナルティ (係数のサイズを小さくするリッジ)が適用され、値が 1 の場合は L1 ペナルティ (係数の一部をゼロに設定してスパースを促進するラッソ)が適用されます。例
Create MODEL modelname OPTIONS(
type = 'logistic_reg'
) AS
select col1, col2, col3 from training-dataset
Multilayer Perceptron Classifier
Multilayer Perceptron Classifier (MLPC)は、フィードフォワード人工ニューラルネットワーク分類器です。 複数のノードの完全に接続されたレイヤーで構成され、各ノードは入力の重み付けされた線形の組み合わせを適用し、その後にアクティブ化関数が適用されます。 MLPC は、非線形の決定境界を必要とする複雑な分類タスクに使用されます。
パラメーター
MAX_ITER
BLOCK_SIZE
STEP_SIZE
gd
ードにのみ適用)。TOL
1E-6
PREDICTION_COL
SEED
PROBABILITY_COL
RAW_PREDICTION_COL
ONE_VS_REST
false
true
、false
例
CREATE MODEL modelname OPTIONS(
type = 'multilayer_perceptron_classifier'
) AS
select col1, col2, col3 from training-dataset
Naive Bayes Classifier
Naive Bayes Classifier は、特性間の強い(素朴な)独立性前提を持つベイズの定理に基づく単純な確率論的、マルチクラス分類子です。 各ラベルに付与された各機能の条件付確率分布を計算するために、トレーニングデータを 1 回のパスで計算することで、効率的にトレーニングを行います。 予測には、ベイズの定理を使用して、観測が与えられた各ラベルの条件付き確率分布を計算します。
パラメーター
MODEL_TYPE
"multinomial"
、"complement"
、"bernoulli"
、"gaussian"
です。 モデルタイプでは大文字と小文字が区別されます。"multinomial"
、"complement"
、"bernoulli"
、"gaussian"
SMOOTHING
PROBABILITY_COL
WEIGHT_COL
1.0
として扱われます。PREDICTION_COL
RAW_PREDICTION_COL
ONE_VS_REST
false
true
、false
例
CREATE MODEL modelname OPTIONS(
type = 'naive_bayes_classifier'
) AS
SELECT col1, col2, col3 FROM training-dataset
Random Forest Classifier
Random Forest Classifier は、トレーニング中に複数のデシジョンツリーを構築するアンサンブル学習アルゴリズムです。 予測を平均化し、分類タスクのために大部分の木によって選択されたクラスを選択することによって、過剰適合を軽減します。
パラメーター
MAX_BINS
CACHE_NODE_IDS
false
の場合、アルゴリズムによってツリーがエグゼキューターに渡され、インスタンスとノードが一致します。 true
の場合、アルゴリズムはインスタンスごとにノード ID をキャッシュするので、トレーニングが高速化されます。false
true
、false
CHECKPOINT_INTERVAL
10
は、キャッシュが 10 回ごとにチェックポイントされることを意味します。IMPURITY
entropy
、gini
MAX_DEPTH
0
は 1 つのリーフノードを意味し、depth 1
は 1 つの内部ノードと 2 つのリーフノードを意味します。MIN_INFO_GAIN
MIN_WEIGHT_FRACTION_PER_NODE
MIN_INSTANCES_PER_NODE
MAX_MEMORY_IN_MB
PREDICTION_COL
WEIGHT_COL
1.0
として扱われます。SEED
BOOTSTRAP
true
true
、false
NUM_TREES
1
の場合、ブートストラップは使用されません。 1
より大きい場合は、ブートストラップが適用されます。SUBSAMPLING_RATE
LEAF_COL
PROBABILITY_COL
RAW_PREDICTION_COL
ONE_VS_REST
false
true
、false
例
Create MODEL modelname OPTIONS(
type = 'random_forest_classifier'
) AS
select col1, col2, col3 from training-dataset