Apache Spark BatchのtGradientBoostedTreeModelプロパティ - Cloud - 8.0

Machine Learning

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

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

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

このコンポーネントは、ビッグデータ対応の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] (ラベルカラム)

分類ラベルを提供するために使う入力カラムを選択します。このカラムのレコードは、分類されるエレメントのクラス名(分類の対象)として使われます。

このコンポーネントは、バイナリ分類モデルのみをサポートしています。マルチクラスモデルを作成する必要がある場合は、tDecisionTreeModelまたはtRandomForestModelを使います。

[Feature column] (機能カラム)

機能を提供するために使う入力カラムを選択します。多くの場合、このカラムはtModelEncoderによって実行された機能エンジニアリング計算の出力です。

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

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

[Number of iterations] (反復回数)

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

[Subsampling rate] (サブサンプリングレート)

各反復に使う入力データセットの比率を示す数値を入力します。デフォルト値の1.0dが推奨されています。これはテストの目的でデータセット全体を取得することを意味します。

[Gain calculation method] (ゲイン計算メソッド)

ノードの分割が発生するたびに、情報獲得が予想されます。このドロップダウンリストで、各分割セットからの最良な分割を定義するために使用する単位を選択します。

  • [gini]: エレメントに対し、分割内で正しくないラべリングが許容される頻度です。

  • [entropy] (エントロピ): 各分割内の情報の予測困難度です。

各測定値の計算方法は、SparkのドキュメンテーションでImpurity measuresをご覧ください。

[Maximum number of bins used for descritizing continuous features] (連続機能の離散化に使われるBinの最大数)

機能の分割に使用されるBinの最大数を示す数値を入力します。

継続的機能は序列化離散機能に自動的に変換されます。

[Maximum depth of the tree] (ツリーの最大深度)

トレーニングが新しいノードの追加を停止するようにしたいデシジョンツリーの深度を入力します。新しいノードは、内部ノードの機能に関する詳細テストと、葉ノードが持つクラスラベルを表します。

深度nのツリーの場合、内部ノードの数は2n - 1です。たとえば、深度1は内部ノード1、プラス葉ノード2を意味します。

一般に、深度の大きいデシジョンツリーはわかりやすく、そのため、より正確な予測ができる可能性があります。ただし、リソース消費量が多く、オーバーフィットの原因になります。

[Minimum information gain] (最小の情報ゲイン)

子ノードが親ノードからの取得を予想できる情報獲得の最小数を入力します。情報獲得の数が最小数を下回ると、ノードの分割は停止します。

情報獲得の最小数は、デフォルト値が0.0です。これは、特定のノードを分割しても、それ以上の情報が得られないことを意味します。その結果、分割が停止する場合があります。

情報獲得の計算方法は、SparkのドキュメンテーションでImpurity and Information gainをご覧ください。

[Minimum number of instances per node] (ノードあたりのインスタンスの最小数)

分割の継続を有効にするためにノードが持つ必要のあるトレーニングインスタンスの最小数を入力します。

デフォルト値は1です。これは、ノードのトレーニングデータの行数が1しかない場合、分割が停止することを意味します。

詳細設定

[Maximum memory] (最大メモリ)

ツリーのトレーニングに割り当てるメモリの最大量(MB)を入力します。

[Checkpoint interval] (チェックポイント間隔)

チェックポイント頻度を示す数を入力します。反復の実行がこの数字の回数に達するたびに、一時モデルが保存されます。

[Define the random seed] (ランダムシードの定義)

ブートストラップと機能サブセットの選択に使用するランダムシード番号を入力します。

使用方法

使用ルール

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

各デシジョンツリーの最大深度、Bin分割の最大数、または情報獲得の最小数などの停止条件を調節することで、トレーニングプロセスの加速が可能になります。ただし、トレーニングの停止が早すぎるとパフォーマンスに影響が生じるおそれがあります。

[Model evaluation] (モデル評価)

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

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

分類子モデルのトレーニングに使うアルゴリズムに応じて、使うスコアを選択する必要があります。これにより、最も適切な混同行列を作成できます。

混同行列を分類用の Talend ジョブに使う方法の例は、Creating a classification model to filter spamをご覧ください。

混同行列に関する一般的な説明は、Wikipediaのhttps://en.wikipedia.org/wiki/Confusion_matrixをご覧ください。

[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を指定します。
    • オンプレミスのディストリビューションを使用する場合は、クラスターで使用されているファイルシステムに対応する設定コンポーネントを使用します。一般的に、このシステムはHDFSになるため、https://help.talend.com/access/sources/content/topic?pageid=thdfsconfiguration&mapid=hdfs&afs:lang=ja&EnrichVersion=8.0を使用します。

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

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

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