# tMatchModel

tMatchPredictコンポーネントによって使用される一致モデルを生成して、疑わしいペアのラベルを自動的に予測し、コンポーネントプロパティで設定されたラベルにマッチするレコードをグルーピングします。

tMatchPairingおよびtMatchPredictコンポーネントの詳細は、それぞれ[tMatchPairing](https://help.qlik.com/talend/ja-JP/data-matching/8.0/tmatchpairing)および[tMatchPredict](https://help.qlik.com/talend/ja-JP/data-matching/8.0/tmatchpredict)をご覧ください。

ペアの2番目のエレメントにラベルを付けた後、tMatchModelではtMatchPairingによって出力された疑わしいペアのサンプルが読み取られ、Random Forestアルゴリズムを使用してデータが分析され、マッチングモデルが生成されます。

ラベルの付いたサスペクトレコードのサンプルは、Talend Data Stewardshipで定義されたグルーピングキャンペーンと共にtMatchModelで使用できます。

ローカルモードでは、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のtMatchModelプロパティ

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

[Spark Batch]のtMatchModelコンポーネントは、データクオリティファミリーに属しています。

このフレームワークのコンポーネントは、すべてのビッグデータ対応のTalendプラットフォーム製品およびTalend Data Fabricで利用できます。

## 基本設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [Define a storage configuration component] (ストレージ設定コンポーネントを定義) | HDFSなどのターゲットファイルシステムへの接続の設定情報を提供するために使用する設定コンポーネントを選択します。<br><br>このチェックボックスをオフにすると、ターゲットファイルシステムはローカルシステムになります。<br><br>使用する接続設定は同じジョブ内にあることが必要です。たとえば、tHDFSConfigurationコンポーネントをジョブにドロップした場合は、このコンポーネントを選択して、所定のHDFSシステム内で結果を書き込むことができます。 |
| [Schema] (スキーマ)と[Edit Schema] (スキーマを編集) | <ul> <li> <p>スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語の<kbd>line</kbd>を避けます。</p> <p>ジョブで接続している先行コンポーネントからスキーマを取得するためには、<span>[Sync columns] (カラムを同期)</span>をクリックします。</p> <p>スキーマを変更するには<span>[Edit schema] (スキーマを編集)</span>をクリックします。現在のスキーマが<span>リポジトリー</span>タイプの場合は、3つのオプションを利用できます。</p> <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> </li> <li> <p> <span>[Built-in] (組み込み)</span>: そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。</p> </li> <li> <p> <span>[Repository] (リポジトリー)</span>: スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。</p> </li> </ul> |
| [Matching key] (マッチングキー) | マッチ計算のベースとなるカラムを選択します。 |
| [Matching label column] (マッチングラベルカラム) | 疑わしいレコードのペアに手動で設定したラベルを保持する入力フローからカラムを選択します。<br><br>[Integration with Data Stewardship] (データスチュワードシップとの統合)チェックボックスをオンにした場合、このリストは表示されません。この場合、マッチングラベルカラムはTDS\_ARBITRATION\_LEVELカラムで、Talend Data Stewardshipを使用して疑いのあるレコードのペアに設定したラベルが保持されています。 |
| [Matching model location] (マッチングモデルロケーション) | [Save the model on file system] (モデルをファイルシステムに保存)チェックボックスをオンにし、[Folder] (フォルダー)フィールドで、マッチングファイルを生成するローカルフォルダーのパスを設定するために使われます。<br><br>特定のファイルシステム(S3またはHDFSなど)にモデルを保存する場合は、ジョブで対応するコンポーネントを使用し、コンポーネントの基本設定で[Define a storage configuration component] (ストレージ設定コンポーネントを定義)チェックボックスをオンにする必要があります。<br><br>参照用のボタンはSpark Localモードでは機能しません。お使いのディストリビューションで、Talend Studioがサポートしているその他のSpark Yarnモードを使用している場合は、同じジョブ内の設定コンポーネントで接続を適切に設定したことを確認する必要があります。使用されるファイルシステムに応じて設定コンポーネントを使用します。 |
| [Generate feature importance report] (特徴量の重要度レポートを生成する) | このチェックボックスをオンにすると、モデルと設定の概要を含むレポートが生成されます。詳細は、[特徴量の重要度レポート](https://help.qlik.com/talend/ja-JP/data-matching/8.0/feature-importance-report)をご覧ください。<br><br>レポートは次の場所に保存できます:<br><br><ul> <li>ローカルシステム</li> <li>Microsoft Azure、ローカルSparkモードで、または <span>tAzureFSConfiguration</span>を使用してAzure HDInsightに接続します。                      </li> <li>Amazon S3、ローカルSparkモードのみ<span>tS3Configuration</span>を使って                      </li> </ul> |
| [Integration with Data Stewardship] (データスチュワードシップとの統合) | このチェックボックスをオンにすると、 Talend Data Stewardship サーバーの接続パラメーターを設定できます。<br><br>このチェックボックスをオンにすると、tMatchModelでは Talend Data Stewardship サーバーで定義されたグルーピングキャンペーンでラベルが付いた疑わしいレコードのサンプルを使用できます。つまり、このコンポーネントは、スタンドアロンコンポーネントとして使用できます。 |
| [Data Stewardship Configuration] (データスチュワードシップ設定) | [Integration with Data Stewardship] (データスチュワードシップとの統合)チェックボックスがオンの場合に利用できます。<br><br><ul> <li> <p> <span>[URL]</span>:</p> <p><kbd>http://&lt;server_address&gt;:19999/data-stewardship/</kbd>)のように、<span>Talend Data Stewardship</span>サーバーにアクセスするアドレスに<em>/data-stewardship/</em>というサフィックスを付けて入力します。</p> <div> <p><span>Talend Cloud Data Stewardship</span>で作業している場合は、<em>/data-stewardship/</em>というサフィックスが付いた対応するデータセンターのURLを使ってアプリケーションにアクセスします。たとえばAWS USデータセンターの場合は<kbd>https://tds.us.cloud.talend.com/data-stewardship</kbd>となります。</p> <p>利用できるデータセンターのURLは、<a href="https://help.qlik.com/talend/ja-JP/installation-guide-windows/Cloud/talend-cloud-application-url" target="_blank">Talend Cloudのアプリケーションにアクセス</a>をご覧ください。</p> </div> </li> <li> <p> <span>[Username] (ユーザー名)</span>および<span>[Password] (パスワード)</span></p> <p><span>Talend Data Stewardship</span>にログインするための認証情報を入力します。</p> <div><span>Talend Cloud Data Stewardship</span>を使用しており、 <ul> <li>SSOが有効な場合は、アクセストークンをフィールドに入力します。</li> <li>SSOが有効でない場合は、アクセストークンまたはパスワードをフィールドに入力します。</li> </ul> </div> </li> <li> <p> <span>[Campaign Label] (キャンペーンラベル)</span>:</p> <p>基本設定でキャンペーンを選択すると、そのキャンペーンの技術的な名前を表示します。ただし、フィールド値を変更して、たとえばコンテキストパラメーターに置き換え、ランタイムにコンテキスト変数をジョブにパスできます。この技術的な名前は、ジョブが<span>Talend Data Stewardship</span>と通信する時に、<span>[Campaign] (キャンペーン)</span>フィールドの値に関係なく、キャンペーンの特定に常に使用されます。</p> <p><span>[Find a Campaign] (キャンペーンの検索)</span>をクリックして、<span>[Campaign owner] (キャンペーンの所有者)</span>か、アクセス権のあるサーバーのグルーピングキャンペーンをリスト表示するダイアログボックスを開きます。</p> <p>更新ボタンをクリックして、<span> <span>Talend Data Stewardship</span> </span>サーバーからキャンペーンの詳細を取得します。</p> </li> </ul> |

## 詳細設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [Max token number for phonetic comparison] (音声比較の最大トークン数) | 音声の比較に使用するトークンの最大数を設定します。<br><br>トークンの数がこのフィールドで定義されている数を超過すると、音声比較は行われません。 |
| [Random Forest hyper-parameters tuning] (Random Forestハイパーパラメーターチューニング) | [Number of trees range] (ツリー範囲の数): 構築するデシジョンツリーの範囲を入力します。各デシジョンツリーは、ランダムなフィーチャーのサンプルを使用して個別にトレーニングされます。<br><br>この範囲を大きくすると、予測の差異を減らすことで精度を向上させることができますが、トレーニング時間が長くなります。<br><br>[Maximum tree-depth range] (最大ツリー深度範囲): トレーニングで新しいノードの追加を停止するデシジョンツリーの深さの範囲を入力します。新しいノードは、内部ノードの機能に関する詳細テストと、葉ノードが持つクラスラベルを表します。<br><br>一般に、深度の大きいデシジョンツリーはわかりやすく、そのため、より正確な予測ができる可能性があります。ただし、リソース消費量が多く、オーバーフィットの原因になります。 |
| [Checkpoint Interval] (チェックポイント間隔) | チェックポイントの頻度を設定するために使われます。これはデフォルト値(10)をそのまま使用することが推奨されています。<br><br>このパラメーターの値を設定する前に、チェックポイントをアクティブにし、[Run] (実行)ビューの[Spark configuration] (Spark設定)タブでチェックポイントディレクトリーを設定するために使われます。<br><br>チェックポインティングの詳細は、[Apache Sparkジョブのロギングとアクティビティのチェックポインティング](https://help.qlik.com/talend/ja-JP/components/8.0/spark-batch/logging-and-checkpointing-activities-of-your-apache-spark-job-spark-batch-component-if-you)をご覧ください。 |
| [Cross-validation parameters] (クロス検証パラメーター) | [Number of folds] (フォールドの数): 個別のトレーニングおよびテストデータセットとして使用するビンの数値を入力します。<br><br>[Evaluation metric type] (評価指標タイプ): リストからタイプを選択します。詳細は、[精度およびリコール](https://en.wikipedia.org/wiki/Precision_and_recall)をご覧ください。 |
| [Random Forest parameters] (Random Forestパラメーター) | [Subsampling rate] (サブサンプリング率): 数値を入力して、フォレスト内の各ツリーのトレーニングに使用する入力データセットの割合を指定します。デフォルト値の1.0が推奨されています。これはテストの目的でデータセット全体を取得することを意味します。<br><br>[Subset Strategy] (サブセット戦略): この内部ノード(実際には、このノードのフィーチャーのトレーニングセットまたはサブセット)をもっと小さなサブセットに適当に分割するため、各内部ノードで考慮するフィーチャーの数に関する戦略を選択します。これらのサブセットは、子ノードを構築するために使用されます。<br><br>戦略では、それぞれ分割するフィーチャーで最適ポイントを見つけるために、異なるフィーチャーについて考慮します。たとえば、カテゴリーフィーチャーの[age] (年齢)について35をポイントにできます。<br><br><ul> <li> <p> <span>[auto] (自動)</span>: この戦略は<span>[Basic settings] (基本設定)</span>ビューの<span>[Number of trees in the forest] (フォレストのツリー数)</span>で設定したツリーの数に基づいています。この戦略がデフォルトとして使用されます。</p> <p>ツリーの数が<kbd>1</kbd>の場合、戦略は実際には<span>[all] (すべて)</span>になります。この数値が<kbd>1</kbd>より大きい場合、戦略は<span>[sqrt] (平方根)</span>になります。</p> </li> <li> <p> <span>[all] (すべて)</span>: 分割対象のフィーチャーの合計数。</p> </li> <li> <p> <span>[sqrt]</span>: フィーチャーの合計数の平方根がフィーチャーの数として考慮されます。</p> </li> <li> <p> <span>log2</span>: 考慮するフィーチャーの数は、<em>log<sub>2</sub>(M)</em>の結果です。ここで<em>M</em>はフィーチャーの合計数です。</p> </li> </ul> |
| [Max Bins] (最大ビン) | 機能の分割に使用されるBinの最大数を示す数値を入力します。<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)をご覧ください。 |
| [Min instance per Node] (ノードあたりの最小インスタンス) | 分割の継続を有効にするためにノードが持つ必要のあるトレーニングインスタンスの最小数を入力します。<br><br>デフォルト値は*1*です。これは、ノードのトレーニングデータの行数が*1*しかない場合、分割が停止することを意味します。 |
| [Impurity] (混合) | 分割の各セットから最適な分割を選択するために使用する指標を選択します。<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)をご覧ください。 |
| [Set a random seed] (ランダムシードの設定) | ブートストラップと機能サブセットの選択に使用するランダムシード番号を入力します。 |
| [Data Stewardship Configuration] (データスチュワードシップ設定) | [Basic settings] (基本設定)で[Integration with Data Stewardship] (データスチュワードシップとの統合)チェックボックスがオンの場合に利用できます。<br><br>[Campaign Name] (キャンペーン名):<br><br>基本設定でキャンペーンを選択すると、そのキャンペーンの技術的な名前を表示します。ただし、フィールド値を変更して、たとえばコンテキストパラメーターに置き換え、ランタイムにコンテキスト変数をジョブにパスできます。この技術的な名前は、ジョブがTalend Data Stewardshipと通信する時に、[Campaign] (キャンペーン)フィールドの値に関係なく、キャンペーンの特定に常に使用されます。<br><br>[Batch Size] (バッチサイズ): 各バッチで処理されるレコード数を指定します。<br><br>パフォーマンスの問題が発生している場合を除き、デフォルト値は変更しないでください。バッチサイズを大きくするとパフォーマンスが向上しますが、高すぎる値を設定すると、ジョブの失敗の原因となる可能性があります。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | このコンポーネントは中間ステップとして使用されます。<br><br>このコンポーネントは、所属するSpark Batchコンポーネントのパレットと共に、Spark Batchジョブを作成している場合にだけ表示されます。 |
| [Spark Batch Connection] (Spark Batch接続) | [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/hdfs/thdfsconfiguration" target="_blank">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/hdfs/thdfsconfiguration-properties-for-apache-spark-batch" target="_blank">tHDFSConfiguration Apache Spark Batch</a>や<a href="https://help.qlik.com/talend/r/ja-JP/8.0/amazon-s3/ts3configuration-properties-for-apache-spark-batch" target="_blank">tS3Configuration Apache Spark Batch</a>など)に対応する設定コンポーネントを使用します。</p> <p>ジョブ内に設定コンポーネントがない状態でDatabricksを使用している場合、ビジネスデータはDBFS (Databricks Filesystem)に直接書き込まれます。</p> </li> </ul><br><br>この接続は、ジョブごとに有効になります。 |