線形回帰は、従属変数と1つ以上の独立変数との間の線形関係をモデル化する統計的手法です。この手法では、予測値と実際の値との誤差を最小化するよう、データに最適な線形曲線をあてはめます。これにより、従属変数の推定および分析が可能になります。
コンポーネントの設定
方法 1:UI を使用する
Designer のワークフローページに 線形回帰 コンポーネントを追加し、右側のペインでパラメーターを設定します。
|
パラメーター種別 |
パラメーター |
説明 |
|
フィールド設定 |
特徴列を選択 |
トレーニングに使用する入力データソースの特徴列です。 |
|
ラベル列を選択 |
DOUBLE 型および BIGINT 型がサポートされています。 |
|
|
スパースフォーマットである |
KV 形式でスパースフォーマットを表現できます。 |
|
|
キーと値のペアの区切り文字 |
デフォルトの区切り文字はカンマ (,) です。 |
|
|
キーと値の区切り文字 |
キーと値を区切る文字です。デフォルトはコロン (:) です。 |
|
|
パラメーター設定 |
最大反復回数 |
アルゴリズムの最大反復回数です。 |
|
最小尤度誤差 |
収束基準として対数尤度を使用します。連続する2回の反復における対数尤度の差が、この値より小さくなった場合、アルゴリズムは停止します。 |
|
|
正則化タイプ |
正則化のタイプです。サポートされるタイプは L1、L2、および なし です。 |
|
|
正則化係数 |
正則化タイプ を なし に設定した場合、このパラメーターは無視されます。 |
|
|
モデル評価テーブルの生成 |
評価指標には、R² 値、自由度調整済み R² 値、AIC、自由度、残差の標準偏差、およびバイアスが含まれます。 |
|
|
回帰係数の評価 |
評価指標には、T 値、P 値、および信頼区間 [2.5%,97.5%] が含まれます。このパラメーターは、モデル評価テーブルの生成 チェックボックスが選択されている場合のみ利用可能です。 |
|
|
実行チューニング |
計算コア数 |
デフォルトでは、システムが自動的にコアを割り当てます。 |
|
コアあたりのメモリサイズ |
デフォルトでは、システムが自動的にメモリを割り当てます。 |
方法 2:PAI コマンドを使用する
PAI コマンドを使用して、線形回帰 コンポーネントのパラメーターを設定します。SQL スクリプトコンポーネントを使用して PAI コマンドを呼び出すことができます。詳細については、「SQL スクリプト」をご参照ください。
PAI -name linearregression
-project algo_public
-DinputTableName=lm_test_input
-DfeatureColNames=x
-DlabelColName=y
-DmodelName=lm_test_input_model_out;
|
パラメーター |
必須 |
デフォルト値 |
説明 |
|
inputTableName |
はい |
なし |
入力テーブルの名前です。 |
|
modelName |
はい |
なし |
出力モデルの名前です。 |
|
outputTableName |
いいえ |
なし |
出力モデル評価テーブルの名前です。enableFitGoodness が true の場合に必須です。 |
|
labelColName |
はい |
なし |
従属変数です。DOUBLE 型および BIGINT 型がサポートされています。従属変数として選択できる列は1列のみです。 |
|
featureColNames |
はい |
なし |
独立変数です。入力データが密形式 (dense format) の場合、DOUBLE 型および BIGINT 型がサポートされます。入力データがスパース形式 (sparse format) の場合、STRING 型がサポートされます。 |
|
inputTablePartitions |
いいえ |
なし |
入力テーブルのパーティションです。 |
|
enableSparse |
いいえ |
false |
入力データがスパース形式であるかどうかを指定します。有効な値は {true,false} です。 |
|
itemDelimiter |
いいえ |
カンマ (,) |
キーと値のペアを区切る文字です。enableSparse が true の場合に使用されます。 |
|
kvDelimiter |
いいえ |
コロン (:) |
key と value を区切る文字です。enableSparse が true の場合に使用されます。 |
|
maxIter |
いいえ |
100 |
アルゴリズムの最大反復回数です。 |
|
epsilon |
いいえ |
0.000001 |
最小対数尤度誤差です。連続する2回の反復における対数尤度の差が、この値より小さくなった場合、アルゴリズムは停止します。 |
|
regularizedType |
いいえ |
なし |
正則化のタイプです。有効な値は {l1,l2,None} です。 |
|
regularizedLevel |
いいえ |
1 |
正則化係数です。regularizedType が None の場合、このパラメーターは使用されません。 |
|
enableFitGoodness |
いいえ |
false |
モデル評価テーブルを生成するかどうかを指定します。評価指標には、R² 値、自由度調整済み R² 値、AIC、自由度、残差の標準偏差、および逸脱度 (deviance) が含まれます。有効な値は {true,false} です。 |
|
enableCoefficientEstimate |
いいえ |
false |
回帰係数を評価するかどうかを指定します。評価指標には、T 値、P 値、および信頼区間 [2.5%,97.5%] が含まれます。enableFitGoodness が true の場合に使用されます。有効な値は {true,false} です。 |
|
lifecycle |
いいえ |
-1 |
出力モデル評価テーブルのライフサイクルです。 |
|
coreNum |
いいえ |
システム割り当て |
デフォルトでは、システムが自動的にコアを割り当てます。 |
|
memSizePerCore |
いいえ |
システム割り当て |
デフォルトでは、システムが自動的にメモリを割り当てます。 |
サンプル
-
SQL ステートメントを使用してテストデータを生成します。
drop table if exists lm_test_input; create table lm_test_input as select * from ( select 10 as y, 1.84 as x1, 1 as x2, '0:1.84 1:1' as sparsecol1 union all select 20 as y, 2.13 as x1, 0 as x2, '0:2.13' as sparsecol1 union all select 30 as y, 3.89 as x1, 0 as x2, '0:3.89' as sparsecol1 union all select 40 as y, 4.19 as x1, 0 as x2, '0:4.19' as sparsecol1 union all select 50 as y, 5.76 as x1, 0 as x2, '0:5.76' as sparsecol1 union all select 60 as y, 6.68 as x1, 2 as x2, '0:6.68 1:2' as sparsecol1 union all select 70 as y, 7.58 as x1, 0 as x2, '0:7.58' as sparsecol1 union all select 80 as y, 8.01 as x1, 0 as x2, '0:8.01' as sparsecol1 union all select 90 as y, 9.02 as x1, 3 as x2, '0:9.02 1:3' as sparsecol1 union all select 100 as y, 10.56 as x1, 0 as x2, '0:10.56' as sparsecol1 ) tmp; -
PAI コマンドを使用して、線形回帰コンポーネントのパラメーターを送信します。
PAI -name linearregression -project algo_public -DinputTableName=lm_test_input -DlabelColName=y -DfeatureColNames=x1,x2 -DmodelName=lm_test_input_model_out -DoutputTableName=lm_test_input_conf_out -DenableCoefficientEstimate=true -DenableFitGoodness=true -Dlifecycle=1; -
PAI コマンドを使用して、予測コンポーネントのパラメーターを送信します。
pai -name prediction -project algo_public -DmodelName=lm_test_input_model_out -DinputTableName=lm_test_input -DoutputTableName=lm_test_input_predict_out -DappendColNames=y; -
出力モデル評価テーブル lm_test_input_conf_out を表示します。
+------------+------------+------------+------------+--------------------+------------+ | colname | value | tscore | pvalue | confidenceinterval | p | +------------+------------+------------+------------+--------------------+------------+ | Intercept | -6.42378496687763 | -2.2725755951390028 | 0.06 | {"2.5%": -11.964027, "97.5%": -0.883543} | coefficient | | x1 | 10.260063429838898 | 23.270944360826963 | 0.0 | {"2.5%": 9.395908, "97.5%": 11.124219} | coefficient | | x2 | 0.35374498323846265 | 0.2949247320997519 | 0.81 | {"2.5%": -1.997160, "97.5%": 2.704650} | coefficient | | rsquared | 0.9879675667384592 | NULL | NULL | NULL | goodness | | adjusted_rsquared | 0.9845297286637332 | NULL | NULL | NULL | goodness | | aic | 59.331109494251805 | NULL | NULL | NULL | goodness | | degree_of_freedom | 7.0 | NULL | NULL | NULL | goodness | | standardErr_residual | 3.765777749448906 | NULL | NULL | NULL | goodness | | deviance | 99.26757440771128 | NULL | NULL | NULL | goodness | +------------+------------+------------+------------+--------------------+------------+ -
予測結果テーブル lm_test_input_predict_out を表示します。
+------------+-------------------+------------------+-------------------+ | y | prediction_result | prediction_score | prediction_detail | +------------+-------------------+------------------+-------------------+ | 10 | NULL | 12.808476727264404 | {"y": 12.8084767272644} | | 20 | NULL | 15.43015013867922 | {"y": 15.43015013867922} | | 30 | NULL | 33.48786177519568 | {"y": 33.48786177519568} | | 40 | NULL | 36.565880804147355 | {"y": 36.56588080414735} | | 50 | NULL | 52.674180388994415 | {"y": 52.67418038899442} | | 60 | NULL | 62.82092871092313 | {"y": 62.82092871092313} | | 70 | NULL | 71.34749583130122 | {"y": 71.34749583130122} | | 80 | NULL | 75.75932310613193 | {"y": 75.75932310613193} | | 90 | NULL | 87.1832221199846 | {"y": 87.18322211998461} | | 100 | NULL | 101.92248485222113 | {"y": 101.9224848522211} | +------------+-------------------+------------------+-------------------+