# デシジョンツリーモデルをトレーニング

このセクションでは、デシジョンツリーモデルのトレーニングを行う方法、およびHadoopクラスターでのジョブを実行する方法を説明します。

## 手順

1. ワークスペースにtDecisionTreeModelコンポーネントを追加します。
2. [Main] (メイン)行を使って、tModelEncoderをtDecisionTreeModelに接続します。
3. tDecisionTreeModelをダブルクリックして[Basic settings] (基本設定)を開きます。
4. [Storage] (ストレージ)で[Define a storage configuration component] (ストレージ設定コンポーネントを定義)チェックボックスをオンにし、HDFSストレージを選択します。
5. 前に作成したスキーマを選択します。
6. [Features Column] (機能カラム)で、MyFeaturesを選択します。
7. [Label Column] (ラベルカラム)で、MyLabelsを選択します。
8. [Model location] (モデルのロケーション)で[Save the model on file system (only for Spark 1.4 or higher)] (モデルをファイルシステムに保存(Spark 1.4以降のみ))チェックボックスを選択し、HDFSファイルシステムにパスを入力します。

   この例では、/user/puccini/machinelearning/decisiontrees/marketing/decisiontree.modelです。
9. 残りの設定をデフォルト値のままにしておきます。

   ![tDecisionTreeModelコンポーネントの設定。](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/developing_a_machine_learning_routine_with_talend_and_spark_14.png)

   ジョブ設定は次のようになります。

   ![tHDFSConfigurationコンポーネント、tFileInputDelimitedコンポーネント、tModelEncoderコンポーネント、tDecisionTreeModelコンポーネントを使用するジョブ。](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/developing_a_machine_learning_routine_with_talend_and_spark_15.png)
10. [Run] (実行)を選択して、[Spark configuration] (Spark設定)に移動します。
11. [Use local mode] (ローカルモードを使用)チェックボックスを選択します。
12. Hadoopクラスターでジョブを実行したい場合:
    1. [Use local mode] (ローカルモードの使用)チェックボックスをオフにします。
    2. [Spark Configuration] (Spark設定)をクリックします。
    3. 次の[Advanced properties] (詳細プロパティ)を追加します。
       | [Property] (プロパティ) | [Value] (値) |
       | --- | --- |
       | "spark.driver.extraJavaOptions" | "-Dhdp.version=2.4.0.0-169" |
       | "spark.yarn.am.extraJavaOptions" | "-Dhdp.version=2.4.0.0-169" |

       この値はHadoopのディストリビューションとバージョン固有のものです。このチュートリアルでは、2.4.0.0-169であるHortonworks 2.4 V3を使います。Hortonworks 2.4 V3を使わない場合は、このパラメーターのエントリーが異なります。

       情報メモ重要: クラスター上でコードを実行する時に、2つのシステム間の自由なアクセスがあることを確認することが重要です。この例では、HortonworksクラスターがTalend Studioのインスタンスと通信できることを確認します。クラスター上で実行されていても、SparkがTalendに同梱されているSparkドライバーを参照する必要があるため、必須です。さらに、Sparkジョブを本番環境にデプロイする場合は、Talendジョブサーバー(エッジノード)から実行されます。これとクラスターの間に自由な通信があることを確認する必要もあります。

       各サービスに必要なポートの詳細は、[Spark Security](https://spark.apache.org/docs/1.6.0/security.html)ドキュメンテーションをご覧ください。
    4. [Advanced settings] (詳細設定)タブを選択します。
    5. [Use specific JVM arguments] (特定のJVM引数を使用)チェックボックスを選択します。
    6. Hadoopのバージョンを示す新しいJVM引数を追加します。

       新しいJVM引数は[Advanced settings] (詳細設定)で[Value] (値)として追加した文字列で、"-Dhdp.version=2.4.0.0-169"となります。
    7. [Basic Run] (基本実行)タブを選択した後に、[Run] (実行)をクリックします。

       完了したら、成功を示すメッセージがコンソールに表示されます。
    8. HDFSディレクトリー(この例ではAmbari)に移動し、モデルが作成済みでありHDFSに永続化されていることを検証します。

       ![HDFSディレクトリーで作成されたモデル。](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/developing_a_machine_learning_routine_with_talend_and_spark_20.png)