3.1.3 モデルの構築
トレーニング・データ・セットを使用してモデルを構築します。 oml.glm
関数を使用して、モデルを構築し、モデル設定を指定します。
回帰などの教師あり学習の場合は、モデルを作成する前にデータをトレーニング・データとテスト・データに分割します。 データ・セット全体を使用してモデルを構築することはできますが、使用可能な新しいデータ・セットがないかぎり、モデルの検証は困難です。 したがって、モデルを評価し、同じデータに対するモデルのパフォーマンスを正確に査定するには、通常、データをトレーニング・データとテスト・データに分割(分離)します。 トレーニング・データ・セットを使用してモデルをトレーニングした後、テスト・データ・セットを使用して予測問合せを実行し、モデルの精度をテストします。 テスト・データ・セットには、予測する属性の既知の値がすでに含まれています。 したがって、モデルの予測が正しいかどうかを簡単に判断できます。
アルゴリズムの選択
モデルを構築する前に、適切なアルゴリズムを選択します。 次のアルゴリズムのいずれかを選択して、回帰の問題を解決できます。
- Extreme Gradient Boosting
- 一般化線形モデル
- ニューラル・ネットワーク
- サポート・ベクター・マシン
データ・セットを理解する場合は、常に単純で簡単なベースライン・モデルから始めます。 一般化線形モデル・アルゴリズムは、特徴とターゲット間の線形関係に適合するので単純で簡単に解釈できるため、適切な選択です。 線形モデルの結果から新しいデータ・セットの最初の理解を得ることができます。
次のステップでは、データを分割し、選択したアルゴリズムを使用してモデルを構築する方法について説明します。
-
データの分割: トレーニング/テスト:
データをトレーニング・データおよびテスト・データに分割し、それぞれ80/20の比率を使用します。 seedパラメータはランダム分割に使用されます。 splitメソッドは、DataFrameプロキシ・オブジェクトBROOKLYN5
によって参照されるデータを、2つの新しいDataFrameプロキシ・オブジェクト・トレインに分割し、テストします。TRAIN, TEST = BROOKLYN5.split(ratio = (0.8,0.2), seed=15) TRAIN_X = TRAIN.drop('sale_price') TRAIN_Y = TRAIN['sale_price'] TEST_X = TEST TEST_Y = TEST['sale_price']
-
モデル構築:
sale_price
属性を予測するためのモデル設定を指定し、一般化線形モデル(GLM)モデル・オブジェクトを作成します。次のスクリプトを実行します。 設定は、キーと値のペアまたはディクショナリのペアとして指定され、パラメータの名前と値の設定がそれぞれ参照されます。try: oml.drop(model = 'BROOKLYN_GLM_REGRESSION_MODEL') except: print('No such model') setting = {'PREP_AUTO':'ON', 'GLMS_ROW_DIAGNOSTICS':'GLMS_ROW_DIAG_ENABLE', 'GLMS_FTR_SELECTION':'GLMS_FTR_SELECTION_ENABLE', 'GLMS_FTR_GENERATION':'GLMS_FTR_GENERATION_ENABLE'} glm_mod = oml.glm("regression", **setting) glm_mod = glm_mod.fit(TRAIN_X,TRAIN_Y,model_name = 'BROOKLYN_GLM_REGRESSION_MODEL',case_id = 'ID')
モデル設定パラメータ:
PREP_AUTO
: 完全に自動化された、またはユーザー指向の一般的なデータ準備を指定するために使用します。 デフォルトでは、定数値'PREP_AUTO': PREP_AUTO_ONで有効になっています。GLMS_ROW_DIAGNOSTICS
: 行診断を有効または無効にします。 デフォルトでは、行診断は無効になっています。GLMS_FTR_SELECTION
: GLMの機能選択を有効または無効にします。 デフォルトでは、特徴選択は無効です。GLMS_FTR_GENERATION
: GLMに対して機能生成を使用可能にするかどうかを指定します。 デフォルトでは、特徴生成は有効化されていません。ノート:
特徴生成は、特徴選択が有効な場合にのみ有効です。
親トピック: 回帰ユース・ケース