回帰アルゴリズム regression-algorithms

このドキュメントでは、高度な統計モデルでの設定、主要なパラメーター、実際の使用方法に重点を置いて、様々な回帰アルゴリズムの概要を説明します。 回帰アルゴリズムは、従属変数と独立変数の関係をモデル化し、観測されたデータに基づいて継続的な結果を予測するために使用されます。 各セクションには、線形、ランダムフォレスト、生存回帰などのタスクに対してこれらのアルゴリズムを実装し、最適化するのに役立つパラメーターの説明とサンプルコードが含まれています。

Decision Tree 回帰 decision-tree-regression

Decision Tree learning は、統計、データマイニング、および機械学習で使用される監視付き学習方法です。 このアプローチでは、分類または回帰決定ツリーを予測モデルとして使用して、一連の観測に関する結論を導き出します。

パラメーター

次の表に、デシジョンツリーモデルのパフォーマンスを設定および最適化するための主要なパラメーターの概要を示します。

パラメーター
説明
デフォルト値
可能な値
MAX_BINS
このパラメーターは、連続特性を分離し、各ノードでの分割を決定するために使用される bin の最大数を指定します。 bin が多いほど、精度と詳細が細かくなります。
32
任意のカテゴリ機能の少なくとも 2 つ、少なくともカテゴリ数である必要があります。
CACHE_NODE_IDS
このパラメーターは、各インスタンスのノード ID をキャッシュするかどうかを決定します。 false の場合、アルゴリズムによってツリーがエグゼキューターに渡され、インスタンスとノードが一致します。 true の場合、アルゴリズムはインスタンスごとにノード ID をキャッシュするので、より深いツリーのトレーニングを高速化できます。 キャッシュをチェックポイントにする頻度を設定したり、CHECKPOINT_INTERVAL を設定してキャッシュを無効にしたりできます。
false
true または false
CHECKPOINT_INTERVAL
このパラメーターは、キャッシュされたノード ID を確認する頻度を指定します。 例えば、10 に設定すると、キャッシュは 10 回ごとにチェックポイントされます。 これは、CACHE_NODE_IDStrue に設定され、チェックポイント・ディレクトリが org.apache.spark.SparkContext で構成されている場合にのみ適用されます。
10
(>=1)
IMPURITY
このパラメーターは、情報のゲインの計算に使用する基準を指定します。 サポートされている値は entropygini です。
gini
entropygini
MAX_DEPTH
このパラメーターは、ツリーの最大深度を指定します。 例えば、デプスが 0 の場合は 1 つのリーフノードが意味され、デプスが 1 の場合は 1 つの内部ノードと 2 つのリーフノードが意味されます。 深さは [0, 30] の範囲内にする必要があります。
5
[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
正の整数
PREDICTION_COL
このパラメーターは、予測の保存に使用する列の名前を指定します。
「予測」
任意の文字列
SEED
このパラメーターは、モデルで使用されるランダムシードを設定します。
なし
任意の 64 ビット番号
WEIGHT_COL
このパラメーターは、重み付け列の名前を指定します。 このパラメーターが設定されていないか、空の場合、すべてのインスタンスの重みは 1.0 として扱われます。
設定なし
任意の文字列

CREATE MODEL modelname OPTIONS(
  type = 'decision_tree_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Factorization Machines 回帰 factorization-machines-regression

Factorization Machines は、通常の勾配降下と AdamW ソルバをサポートする回帰学習アルゴリズムです。 アルゴリズムは、S.Rendle (2010)の論文「Factorization Machines」に基づいています。

パラメーター

次の表に、回帰のパフォーマンスを設定および最適化するための主要なパラメーター Factorization Machines 概要を示します。

パラメーター
説明
デフォルト値
可能な値
TOL
このパラメータは、アルゴリズムの収束許容値を指定します。 値を大きくすると、コンバージェンスが速くなりますが、精度が低下する場合があります。
1E-6
(>= 0)
FACTOR_SIZE
このパラメーターは、要因のディメンションを定義します。 値を大きくすると、モデルが複雑になります。
8
(>= 0)
FIT_INTERCEPT
このパラメーターは、モデルにインターセプト用語を含める必要があるかどうかを示します。
true
truefalse
FIT_LINEAR
このパラメータは、線形項(単方向項とも呼ばれます)をモデルに含めるかどうかを指定します。
true
truefalse
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
このパラメータは、最適化に使用するソルバーアルゴリズムを指定します。
「アダム W」
gd (グラデーション降下)、adamW
STEP_SIZE
このパラメーターは、最初の最適化ステップの初期ステップサイズ (または学習率)を指定します。
1.0
任意の正の値
PREDICTION_COL
このパラメーターは、予測が保存される列の名前を指定します。
「予測」
任意の文字列

CREATE MODEL modelname OPTIONS(
  type = 'factorization_machines_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Generalized Linear 回帰 generalized-linear-regression

結果が通常の(ガウス)分布に従うことを前提とする線形回帰とは異なり、Generalized Linear モデル(GLM)では、データの性質に応じて、Poisson や二項などの異なるタイプの分布に結果を従うことができます。

パラメーター

次の表に、回帰のパフォーマンスを設定および最適化するための主要なパラメーター Generalized Linear 概要を示します。

パラメーター
説明
デフォルト値
可能な値
MAX_ITER
最大反復回数を設定します(ソルバー irls を使用する場合に適用)。
25
(>= 0)
REG_PARAM
正規化パラメーター。
設定されていません
(>= 0)
TOL
収束許容値。
1E-6
(>= 0)
AGGREGATION_DEPTH
treeAggregate の推奨される深度。
2
(>= 2)
FAMILY
ファミリ パラメータ。モデルで使用されるエラー分布を記述します。 サポートされるオプションは、gaussianbinomialpoissongammatweedie です。
「ガウス」
gaussian, binomial, poisson, gamma, tweedie
FIT_INTERCEPT
インターセプト項に適合するかどうか。
true
truefalse
LINK
リンク関数。線形予測子と分布関数の平均との関係を定義します。 サポートされるオプションは、identityloginverselogitprobitcloglog および sqrt です。
設定されていません
identity, log, inverse, logit, probit, cloglog, sqrt
LINK_POWER
このパラメーターは、電源リンク関数のインデックスを指定します。 パラメータは、Tweedie ファミリにのみ適用されます。 設定されていない場合は、デフォルトで 1 - variancePower に設定され、R statmod パッケージに合わせて調整されます。 0、1、-1、および 0.5 の特定のリンク電力は、それぞれ Log、Identity、Inverse、および Sqrt リンクに対応します。
1
任意の数値
SOLVER
最適化に使用するソルバーアルゴリズム。 サポートされているオプション:irls (反復的に再重み付けされた最小二乗法)。
"irls"
irls
VARIANCE_POWER
このパラメータは、分散と平均の関係を定義して、Tweedie 分布の分散関数の累乗を指定します。 サポートされている値は 0 と [1, inf) です。 0 の分散パワー、1 の分散パワー、および 2 の分散パワーは、それぞれガウス、ポアソン、およびガンマの各ファミリに対応します。
0.0
0、[1, inf)
LINK_PREDICTION_COL
リンク予測(線形予測子)列名。
設定されていません
任意の文字列
OFFSET_COL
オフセット列名。 設定されていない場合、すべてのインスタンス オフセットは 0.0 として処理されます。オフセットフィーチャーの定数係数は 1.0 です。
設定されていません
任意の文字列
WEIGHT_COL
重み付けの列名。 設定されていない場合や空の場合は、すべてのインスタンスの重みが 1.0 として扱われます。 二項ファミリでは、重みは試行回数に対応し、整数以外の重みは AIC 計算で四捨五入されます。
設定されていません
任意の文字列

CREATE MODEL modelname OPTIONS(
  type = 'generalized_linear_reg'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Gradient Boosted Tree 回帰 gradient-boosted-tree-regression

グラデーションブーストツリー(GBT)は、複数のデシジョンツリーの予測を組み合わせて、予測精度とモデルパフォーマンスを向上させる分類および回帰の効果的な方法です。

パラメーター

次の表に、回帰のパフォーマンスを設定および最適化するための主要なパラメーター Gradient Boosted Tree 概要を示します。

パラメーター
説明
デフォルト値
可能な値
MAX_BINS
連続した機能を個別の間隔に分割するために使用される bin の最大数。これにより、各決定ツリーノードでの機能の分割方法を決定できます。 bin が多いほど、精度が高くなります。
32
少なくとも 2 で、カテゴリ機能のカテゴリ数以上である必要があります。
CACHE_NODE_IDS
false の場合、アルゴリズムによってツリーがエグゼキューターに渡され、インスタンスとノードが一致します。 true の場合、アルゴリズムはインスタンスごとにノード ID をキャッシュします。 キャッシュを使用すると、より深い木のトレーニングをスピードアップできます。
false
truefalse
CHECKPOINT_INTERVAL
キャッシュされたノード ID のチェックポイント頻度を指定します。 例えば、10 は、キャッシュが 10 回ごとにチェックポイントされることを意味します。
10
(>= 1)
MAX_DEPTH
ツリーの最大深度(負でない)。 例えば、depth 0 はリーフノードが 1 つ、depth 1 は内部ノードが 1 つ、リーフノードが 2 つ存在することを意味します。
5
(>= 0)
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
正の整数
PREDICTION_COL
予測出力の列名。
「予測」
任意の文字列
VALIDATION_INDICATOR_COL
各行がトレーニングまたは検証のどちらに使用されるかを示す列名。 トレーニングには false、検証には true を使用します。
設定されていません
任意の文字列
LEAF_COL
リーフインデックスの列名。 各ツリー内の各インスタンスの予測リーフインデックス。プリオーダートラバーサルによって生成されます。
""
任意の文字列
FEATURE_SUBSET_STRATEGY
このパラメーターは、各ツリーノードで分割に考慮するフィーチャーの数を指定します。
"auto"
autoallonethirdsqrtlog2、または 0 から 1.0 の間の分数
SEED
ランダム シードです。
設定されていません
任意の 64 ビット番号
WEIGHT_COL
列名(例:重み)。 設定されていない場合や空の場合は、すべてのインスタンスの重みが 1.0 として扱われます。
設定されていません
任意の文字列
LOSS_TYPE
このパラメータは、Gradient Boosted Tree モデルが最小限に抑える損失関数を指定します。
「二乗」
squared (L2)、absolute (L1)。 メモ:値では大文字と小文字が区別されません。
STEP_SIZE
範囲 (0, 1] のステップサイズ (学習率とも呼ばれます)は、各推定量の貢献度を小さくするために使用されます。
0.1
(0, 1]
MAX_ITER
アルゴリズムの最大反復数。
20
(>= 0)
SUBSAMPLING_RATE
各決定ツリーを学習するために使用されるトレーニングデータの割合(範囲 (0, 1])。
1.0
(0, 1]

CREATE MODEL modelname OPTIONS(
  type = 'gradient_boosted_tree_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Isotonic 回帰 isotonic-regression

Isotonic Regression は、データの非類似性の相対的な順序を維持しながら、距離を反復的に調整するために使用されるアルゴリズムです。

パラメーター

Isotonic Regression のパフォーマンスの設定と最適化のための主要なパラメーターの概要を次の表に示します。

パラメーター
説明
デフォルト値
可能な値
ISOTONIC
出力シーケンスを true ート時に等張(増加)するか、false ート時に反張(減少)するかを指定します。
true
truefalse
WEIGHT_COL
列名(例:重み)。 設定されていない場合や空の場合は、すべてのインスタンスの重みが 1.0 として扱われます。
設定されていません
任意の文字列
PREDICTION_COL
予測出力の列名。
「予測」
任意の文字列
FEATURE_INDEX
フィーチャのインデックス。ベクトル列 featuresCol 場合に適用できます。 設定されていない場合、デフォルト値は 0 です。 それ以外の場合は、効果はありません。
0
負以外の任意の整数

CREATE MODEL modelname OPTIONS(
  type = 'isotonic_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Linear 回帰 linear-regression

Linear Regression は、従属変数と独立特性の関係をモデル化するために、線形方程式をデータに適合させる監視付き機械学習アルゴリズムです。

パラメーター

Linear Regression のパフォーマンスの設定と最適化のための主要なパラメーターの概要を次の表に示します。

パラメーター
説明
デフォルト値
可能な値
MAX_ITER
イテレーションの最大数。
100
(>= 0)
REGPARAM
モデルの複雑さを制御するために使用される正規化パラメーター。
0.0
(>= 0)
ELASTICNETPARAM
L1 (ラッソ)と L2 (リッジ)ペナルティのバランスを制御する ElasticNet 混合パラメーター。 値が 0 の場合は L2 ペナルティが適用され、値が 1 の場合は L1 ペナルティが適用されます。
0.0
(>= 0, <= 1)

CREATE MODEL modelname OPTIONS(
  type = 'linear_reg'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Random Forest Regression random-forest-regression

Random Forest Regression は、トレーニング中に複数のデシジョンツリーを構築し、回帰タスクに関するそれらのツリーの平均予測を返すアンサンブルアルゴリズムで、オーバーフィッティングを防ぐのに役立ちます。

パラメーター

Random Forest Regression のパフォーマンスの設定と最適化のための主要なパラメーターの概要を次の表に示します。

パラメーター
説明
デフォルト値
可能な値
MAX_BINS
連続機能を分離し、各ノードで機能がどのように分割されるかを決定するために使用される bin の最大数。 bin が多いほど、精度が高くなります。
32
少なくとも 2 で、カテゴリ機能のカテゴリ数と等しい数である必要があります。
CACHE_NODE_IDS
false の場合、アルゴリズムによってツリーがエグゼキューターに渡され、インスタンスとノードが一致します。 true の場合、アルゴリズムはインスタンスごとにノード ID をキャッシュするので、より深いツリーのトレーニングが迅速になります。
false
truefalse
CHECKPOINT_INTERVAL
キャッシュされたノード ID のチェックポイント頻度を指定します。 例えば、10 は、キャッシュが 10 回ごとにチェックポイントされることを意味します。
10
(>= 1)
IMPURITY
情報ゲインの計算に使用する条件(大文字と小文字を区別しない)。
「エントロピー」
entropygini
MAX_DEPTH
ツリーの最大深度(負でない)。 例えば、depth 0 は 1 つのリーフノードを意味し、depth 1 は 1 つの内部ノードと 2 つのリーフノードを意味します。
5
負以外の任意の整数
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
(>= 1)
BOOTSTRAP
ツリーの構築時にブートストラップサンプルを使用するかどうか。
TRUE
truefalse
NUM_TREES
トレーニングするツリーの数(少なくとも 1 つ)。 1 の場合、ブートストラップは使用されません。 1 より大きい場合は、ブートストラップが適用されます。
20
(>= 1)
SUBSAMPLING_RATE
各デシジョンツリーのトレーニングに使用されるトレーニングデータの割合(範囲 (0, 1])。
1.0
(>= 0.0, <= 1)
LEAF_COL
リーフインデックスの列名。これは、各ツリー内の各インスタンスの予測リーフインデックスであり、事前順序トラバーサルによって生成されます。
""
任意の文字列
PREDICTION_COL
予測出力の列名。
「予測」
任意の文字列
SEED
ランダム シードです。
設定されていません
任意の 64 ビット番号
WEIGHT_COL
列名(例:重み)。 設定されていない場合や空の場合は、すべてのインスタンスの重みが 1.0 として扱われます。
設定されていません
有効な列名を指定するか、空のままにします。

CREATE MODEL modelname OPTIONS(
  type = 'random_forest_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Survival Regression survival-regression

Survival Regression は、Weibull distribution に基づいて、Accelerated Failure Time (AFT)モデルと呼ばれるパラメトリックサバイバル回帰モデルに適合させるために使用されます。 パフォーマンスを向上させるために、インスタンスをブロックにスタックできます。

パラメーター

Survival Regression のパフォーマンスの設定と最適化のための主要なパラメーターの概要を次の表に示します。

パラメーター
説明
デフォルト値
可能な値
MAX_ITER
アルゴリズムが実行する最大反復数。
100
(>= 0)
TOL
収束許容値。
1E-6
(>= 0)
AGGREGATION_DEPTH
treeAggregate の推奨される深度。 フィーチャーの寸法または分割数が大きい場合、このパラメータはより大きな値に設定できます。
2
(>= 2)
FIT_INTERCEPT
インターセプト項に適合するかどうか。
TRUE
truefalse
PREDICTION_COL
予測出力の列名。
「予測」
任意の文字列
CENSOR_COL
中央揃えの列名。 値が 1 の場合は、イベントが発生(無修正)したことを示し、0 の場合は、イベントが検閲されたことを意味します。
「センサー」
0、1
MAX_BLOCK_SIZE_IN_MB
入力データをブロックにスタックするための最大メモリ(MB 単位)です。 パーティションの残りのデータサイズが小さい場合、この値はそれに応じて調整されます。 値が 0 の場合、自動調整が可能です。
0.0
(>= 0)

CREATE MODEL modelname OPTIONS(
  type = 'survival_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

次の手順

このドキュメントでは、様々な回帰アルゴリズムの設定方法と使用方法を確認しました。 次に、他のタイプの高度な統計モデルについて詳しくは、 分類および クラスタリングに関するドキュメントを参照してください。

recommendation-more-help
ccf2b369-4031-483f-af63-a93b5ae5e3fb