Apache Spark BatchのtLinearRegressionModelプロパティ - 7.3

Machine Learning

Version
7.3
Language
日本語
Product
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発 > サードパーティーシステム > 機械学習コンポーネント
データガバナンス > サードパーティーシステム > 機械学習コンポーネント
データクオリティとプレパレーション > サードパーティーシステム > 機械学習コンポーネント
Last publication date
2024-02-22

これらのプロパティは、Spark Batchジョブのフレームワークで実行されているtLinearRegressionModelを設定するために使われます。

Spark BatchtLinearRegressionModelコンポーネントは、機械学習ファミリーに属しています。

このコンポーネントは、ビッグデータ対応のTalend Platform製品およびTalend Data Fabricで利用できます。

基本設定

[Schema] (スキーマ)[Edit schema] (スキーマを編集)

スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。

スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。

  • [View schema] (スキーマを表示): スキーマのみを表示する場合は、このオプションを選択します。

  • [Change to built-in property] (組み込みのプロパティに変更): ローカルで変更を行うためにスキーマを組み込みに変更する場合は、このオプションを選択します。

  • [Update repository connection] (リポジトリー接続をアップデート): リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。変更を現在のジョブにのみ反映する場合は、変更後、[No] (いいえ)を選択し、[Repository Content] (リポジトリーコンテンツ)ウィンドウで再びこのスキーマのメタデータを選択します。

[Label column] (ラベルカラム)

[Double] (倍数)型のラベル(線形回帰に関する従属変数の値)を提供するために使う入力カラムを選択します。このカラムのレコードは、特定のエレメントが該当する可能性のある潜在的な状況(線形回帰に関する従属変数のバリエーション)として使われます。

[Feature column] (機能カラム)

Vector型の機能(線形回帰に関する独立変数または説明変数の値)を提供するために使う入力カラムを選択します。多くの場合、このカラムはtModelEncoderによって実行された機能エンジニアリング計算の出力です。

[Save the model on file system] (モデルをファイルシステムに保存)

特定のファイルシステムにモデルを保管する場合は、このチェックボックスをオンにします。オフの場合、モデルはメモリに保管されます。参照用のボタンはSpark [Local] (ローカル)モードでは機能しません。Spark YarnまたはSpark [Standalone] (スタンドアロン)モードを使用している場合は、同じジョブ内のtHDFSConfigurationなどの設定コンポーネントで接続を適切に設定したことを確認する必要があります。

[ElasticNet mixing parameter] (ElasticNetミキシングパラメーター)

機能選択におけるバイアス/差異のトレードオフを制御するために、正則化計算に使われるElasticNet係数(数値)を入力します。ElasticNetは、L1正則化とL2正則化の組み合わせです。

入力する値は0.0と1.0の間で変化し、ElasticNetの組み合わせにおけるL1正則化とL2正則化の重みを示します。値が0.0の場合、正則化は実際にはL2正則化と同等です。値が1.0の場合はL1正則化と同等です。

ElasticNetをSparkに実装する方法は、ML線形方式をご覧ください。そこでは、入力する値(その式ではα)がElasticNet正則化を計算するためにどう使われるかが、関連する数式によって示されています。

ElasticNetの詳細は、Regularization and variable selection via the elastic netをご覧ください。

[Fit an intercept term] (インターセプト期間を合わせる)

このチェックボックスをオンにすると、tLinearRegressionModelがインターセプト定数を自動的に計算し、それらを回帰計算に含めます。

一般に、インターセプトはモデルの残差の平均がゼロであることを保証するために必要です。

[Standardize features before fitting model] (モデルを合わせる前に特徴を標準化)

このチェックボックスをオンにすると、特徴がスケーリングされ、正規分布になります。

[Maximum number of iterations] (最大反復回数)

ジョブを実行してモデルをトレーニングする反復回数を入力します。

[Regularization] (正則化)

ElasticNetと共に正則化計算に使う正則化係数(数値)を入力します。

このパラメーターをSparkに実装する方法は、ML線形方式をご覧ください。そこでは、入力する値(その式ではλ)が最終的な正則化を計算するためにどう使われるかが、関連する数式によって示されています。

[Convergence tolerance] (収束トレランス)

反復が取得すると予想される収束スコアを入力します。

一般に、値が小さいほど、予測の精度が高くなりますが、反復回数は多くなります。

ただし、場合によっては、ジョブに実行させたい反復回数に関係なく、モデルが目的の収束に到達できないことがあります。この収束の失敗は、使う収束スコアが処理中の特徴に対して現実的ではないため、これらの特徴をより高度に処理する必要があることを示している可能性があります。

[Solver algorithm] (ソルバーアルゴリズム)

最適化に使うアルゴリズムを選択します。

  • [Normal] (正常): このアルゴリズムは通常の方程式を使います。

  • L-BFGS: このアルゴリズムは、限られた量のコンピューターメモリを使ってBFGSアルゴリズムを近似します。

  • [Auto] (自動): コンポーネントは、上記のアルゴリズムのいずれかを選択します。

使用方法

使用ルール

このコンポーネントは、終了コンポーネントとして使用され、入力リンクを必要とします。

反復の最大数または収束トレランスなどの停止条件を調整することで、トレーニングプロセスの加速が可能になります。ただし、トレーニングの停止が早すぎるとパフォーマンスに影響が生じるおそれがあります。

[Model evaluation] (モデル評価)

設定する必要があるパラメーターは自由パラメーターであるため、値は以前の実験や経験的推測などによって提供される場合があります。すべてのデータセットに適用できる最適値はありません。

したがって、最適な評価結果が得られるまで、さまざまなパラメーター値のセットを使って生成するリレーションシップモデルをトレーニングする必要があります。ただし、モデルをスコアでランク付けするためには自分で評価コードを記述する必要があります。

回帰ベースのリレーションシップモデルの検証に関する一般的な情報は、https://en.wikipedia.org/wiki/Regression_validationをご覧ください。

[Spark Connection] (Spark接続)

[Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリーを指定する必要があります。
  • Yarnモード(YarnクライアントまたはYarnクラスター):
    • Google Dataprocを使用している場合、[Spark configuration] (Spark設定)タブの[Google Storage staging bucket] (Google Storageステージングバケット)フィールドにバケットを指定します。

    • HDInsightを使用している場合、[Spark configuration] (Spark設定)タブの[Windows Azure Storage configuration] (Windows Azure Storage設定)エリアでジョブのデプロイメントに使用するブロブを指定します。

    • Altusを使用する場合は、[Spark configuration] (Spark設定)タブでジョブのデプロイにS3バケットまたはAzure Data Lake Storageを指定します。
    • Quboleを使用する場合は、ジョブにtS3Configurationを追加し、QuboleでS3システム内に実際のビジネスデータを書き込みます。tS3Configurationを使用しないと、このビジネスデータはQubole HDFSシステムに書き込まれ、クラスターをシャットダウンすると破棄されます。
    • オンプレミスのディストリビューションを使用する場合は、クラスターで使われているファイルシステムに対応する設定コンポーネントを使用します。一般的に、このシステムはHDFSになるため、tHDFSConfigurationを使用します。

  • [Standalone mode] (スタンドアロンモード): クラスターで使われているファイルシステム(tHDFSConfiguration Apache Spark BatchtS3Configuration Apache Spark Batchなど)に対応する設定コンポーネントを使用します。

    ジョブ内に設定コンポーネントがない状態でDatabricksを使用している場合、ビジネスデータはDBFS (Databricks Filesystem)に直接書き込まれます。

この接続は、ジョブごとに有効になります。