# tGradientBoostedTreeModel

tModelEncoderによって通常はプレパレーションが行われ、提供される機能ベクターを分析して、tPredictが特定のエレメントを分類するために使う分類子モデルを生成します。

tGradientBoostedTreeModelは、ディシジョンツリーアルゴリズムを使って受信データセットを分析します。

この分析からバイナリ分類モデルを生成し、このモデルをメモリまたは特定のファイルシステムのどちらかに書き込みます。

ローカルモードでは、Apache Spark 2.4.0以降のバージョンがサポートされています。

デフォルトで、このコンポーネントはTalend Studioと共には出荷されていません。機能マネージャーを使ってインストールする必要があります。 詳細は、[機能マネージャーを使って機能をインストール](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/install-features-to-talend-studio)をご覧ください。

## Apache Spark BatchのtGradientBoostedTreeModelプロパティ

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

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

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

## 基本設定

| プロパティ | 説明 |
| --- | --- |
| [Schema] (スキーマ)と[Edit schema] (スキーマを編集) | スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。<br><br>スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。<br><br><ul> <li> <p> <span>[View schema] (スキーマを表示)</span>: スキーマのみを表示する場合は、このオプションを選択します。</p> </li> <li> <p> <span>[Change to built-in property] (組み込みのプロパティに変更)</span>: ローカルで変更を行うためにスキーマを<span>組み込み</span>に変更する場合は、このオプションを選択します。</p> </li> <li> <p> <span>[Update repository connection] (リポジトリー接続をアップデート)</span>: リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。</p> <p>変更を現在のジョブにのみ反映する場合は、変更後、<span>[No] (いいえ)</span>を選択し、<span>[Repository Content] (リポジトリーコンテンツ)</span>ウィンドウで再びこのスキーマのメタデータを選択します。</p> </li> </ul> |
| [Label column] (ラベルカラム) | 分類ラベルの提供に使う入力カラムを選択します。このカラムのレコードは、分類されるエレメントのクラス名(分類の対象)として使われます。<br><br>このコンポーネントは、バイナリ分類モデルのみをサポートしています。マルチクラスモデルを作成する必要がある場合は、[tDecisionTreeModel](https://help.qlik.com/talend/ja-JP/components/8.0/machine-learning/tdecisiontreemodel)または[tRandomForestModel](https://help.qlik.com/talend/ja-JP/components/8.0/machine-learning/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] (ゲイン計算メソッド) | ノードの分割が発生するたびに、情報獲得が予想されます。このドロップダウンリストから、各分割セットからの最良な分割を定義するために使用する単位を選択します。<br><br><ul> <li> <p> <span>[gini]</span>: エレメントに対し、分割内で正しくないラべリングが許容される頻度です。</p> </li> <li> <p> <span>[entropy] (エントロピ)</span>: 各分割内の情報の予測困難度です。</p> </li> </ul><br><br>各測定値の計算方法は、Sparkのドキュメンテーションで[Impurity measures](http://spark.apache.org/docs/latest/mllib-decision-tree.html#node-impurity-and-information-gain)をご覧ください。 |
| 連続機能の分離に使われるbinの最大数 | 機能の分割に使用されるBinの最大数を示す数値を入力します。<br><br>継続的機能は序列化離散機能に自動的に変換されます。 |
| [Maximum depth of the tree] (ツリーの最大深度) | トレーニングが新しいノードの追加を停止するようにしたいデシジョンツリーの深度を入力します。新しいノードは、内部ノードの機能に関する詳細テストと、葉ノードが持つクラスラベルを表します。<br><br>深度*n*のツリーの場合、内部ノードの数は*2^n^ - 1*です。たとえば、深度*1*は内部ノード*1*、プラス葉ノード*2*を意味します。<br><br>一般に、深度の大きいデシジョンツリーはわかりやすく、そのため、より正確な予測ができる可能性があります。ただし、リソース消費量が多く、オーバーフィットの原因になります。 |
| [Minimum information gain] (最小の情報ゲイン) | 子ノードが親ノードからの取得を予想できる情報獲得の最小数を入力します。情報獲得の数が最小数を下回ると、ノードの分割は停止します。<br><br>情報獲得の最小数は、デフォルト値が*0.0*です。これは、特定のノードを分割しても、それ以上の情報が得られないことを意味します。その結果、分割が停止する場合があります。<br><br>情報獲得の計算方法は、Sparkのドキュメンテーションで[Impurity and Information gain](http://spark.apache.org/docs/latest/mllib-decision-tree.html#node-impurity-and-information-gain)をご覧ください。 |
| [Minimum number of instances per node] (ノードあたりのインスタンスの最小数) | 分割の継続を有効にするためにノードが持つ必要のあるトレーニングインスタンスの最小数を入力します。<br><br>デフォルト値は*1*です。これは、ノードのトレーニングデータの行数が*1*しかない場合、分割が停止することを意味します。 |

## 詳細設定

| プロパティ | 説明 |
| --- | --- |
| [Maximum memory] (最大メモリ) | ツリーのトレーニングに割り当てるメモリの最大量(MB)を入力します。 |
| [Checkpoint interval] (チェックポイント間隔) | チェックポイント頻度を示す数を入力します。反復の実行がこの数値の回数に達するたびに、一時モデルが保存されます。 |
| [Define the random seed] (ランダムシードの定義) | ブートストラップと機能サブセットの選択に使用するランダムシード番号を入力します。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | このコンポーネントは、終了コンポーネントとして使用され、入力リンクを必要とします。<br><br>各デシジョンツリーの最大深度、Bin分割の最大数、または情報獲得の最小数などの停止条件を調節することで、トレーニングプロセスの加速が可能になります。ただし、トレーニングの停止が早すぎるとパフォーマンスに影響が生じるおそれがあります。 |
| [Model evaluation] (モデル評価) | 設定する必要があるパラメーターは自由パラメーターであるため、値は以前の実験や経験的推測などによって提供される場合があります。すべてのデータセットに適用できる最適値はありません。<br><br>したがって、最適な混同行列が得られるまで、さまざまなパラメーター値のセットを使って生成する分類子モデルをトレーニングする必要があります。ただし、モデルをスコアでランク付けするためには自分で評価コードを記述する必要があります。<br><br>分類子モデルのトレーニングに使うアルゴリズムに応じて、使うスコアを選択する必要があります。これにより、最も適切な混同行列を作成できます。<br><br>混同行列を分類用のTalendジョブに使う方法の例は、[スパムをフィルタリングする分類モデルを作成](https://help.qlik.com/talend/r/ja-JP/8.0/components/machine-learning/classification-model)をご覧ください。<br><br>混同行列に関する一般的な説明は、Wikipediaのhttps://en.wikipedia.org/wiki/Confusion\_matrixをご覧ください。 |
| [Spark Connection] (Spark接続) | [Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリーを指定する必要があります。<br><br><ul> <li> <div> <span>Yarnモード</span>(YarnクライアントまたはYarnクラスター):<ul> <li> <p>Google Dataprocを使用している場合、<span>[Spark configuration] (Spark設定)</span>タブの<span>[Google Storage staging bucket] (Google Storageステージングバケット)</span>フィールドにバケットを指定します。</p> </li> <li> <p>HDInsightを使用している場合、<span>[Spark configuration] (Spark設定)</span>タブの<span>[Windows Azure Storage configuration] (Windows Azure Storage設定)</span>エリアでジョブのデプロイメントに使用するブロブを指定します。</p> </li> <li>Altusを使用する場合は、<span>[Spark configuration] (Spark設定)</span>タブでジョブのデプロイにS3バケットまたはAzure Data Lake Storageを指定します。</li> <li> <p>オンプレミスのディストリビューションを使用する場合は、クラスターで使われているファイルシステムに対応する設定コンポーネントを使用します。一般的に、このシステムはHDFSになるため、<a href="https://help.qlik.com/talend/r/ja-JP/8.0/components/hdfs/thdfsconfiguration">tHDFSConfiguration</a>を使用します。</p> </li> </ul> </div> </li> <li> <p> <span>[Standalone mode] (スタンドアロンモード)</span>: クラスターで使われているファイルシステム(<a href="https://help.qlik.com/talend/r/ja-JP/8.0/components/hdfs/thdfsconfiguration-properties-for-apache-spark-batch">tHDFSConfiguration Apache Spark Batch</a>や<a href="https://help.qlik.com/talend/r/ja-JP/8.0/components/amazon-s3/ts3configuration-properties-for-apache-spark-batch">tS3Configuration Apache Spark Batch</a>など)に対応する設定コンポーネントを使用します。</p> <p>ジョブ内に設定コンポーネントがない状態でDatabricksを使用している場合、ビジネスデータはDBFS (Databricks Filesystem)に直接書き込まれます。</p> </li> </ul><br><br>この接続は、ジョブごとに有効になります。 |