Apache Spark BatchのtSVMModelプロパティ - 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ジョブフレームワークで実行されているtSVMModelを設定するために使います。

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

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

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

SVMモデルはバイナリ分類モデルであるため、2つのクラスのみが予期されます。つまり、このカラムからは2つの異なる値のみが予期されます。

[Vector to process] (処理するVector)

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

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

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

[Step size] (ステップサイズ)

勾配降下法計算の最初のステップのサイズ(数値)を入力します。デフォルト値1.0は、データセット全体が取得されることを意味します。

多くの場合、最適なステップサイズの選択は実際には微妙です。

一般的に、分析する機能ポイントが非常に混雑している場合、各反復で十分な数のポイントをカバーするために、ステップサイズを大きくすることをお勧めします。ただし、ステップサイズが大きすぎると、各反復の時間が不適切に長くなる可能性があることにご注意ください。

一方、ステップサイズが小さいほど、収束が遅くなり、より正確なモデルが期待できます。

[Number of iterations] (反復回数)

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

[Fraction of data to be used per iteration] (反復ごとに使用するデータ片)

勾配を計算するために各反復で使われる入力データの割合(10進数で表現)を入力します。

デフォルト値1.0は、データセット全体が取得されることを意味します。

[Regularization parameter] (規則化パラメーター)

学習の過剰適合を回避するために、[Updater function] (Updater関数)が使う正規化番号を入力します。

[Updater function] (Updater関数)

2つのクラスを分離する超平面のフォームを計算する関数を選択します。

この関数は、指定された方向に勾配ステップを実行して超平面を形成するように、各反復のすべてのポイントの重みを更新します。

たとえば、2次元空間では、分類される点が線形的に分離可能な場合、この超平面は線または線のセットになる可能性があります。

使用可能な関数は次のとおりです。
  • [Simple] (シンプル): [Regularization parameter] (正規化パラメーター)は使いません。

  • L1: L1正規化を実行します。

  • [Squared L2] (2乗L2): L2正規化を実行します。

[Gradient function] (勾配関数)

損失関数を選択して、超平面といずれかのクラスの最も近い点との間のマージンを計算します。

このドロップダウンリストで使える損失関数の詳細は、分類の損失関数を参照してください。

詳細設定

[Use feature scaling] (機能スケーリングの使用)

トレーニングデータが収束できない場合は、このチェックボックスをオンにして、 tSVMModelが機能データをスケーリングすることにより条件数をヒューリスティックに減らします。

多くの場合、条件数を減らすと収束率が向上します。

[Intercept] (インターセプト)

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

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

[Validate data before training] (トレーニング前にデータを検証)

このチェックボックスをオンにして、トレーニングを開始する前にトレーニングデータのベクトルが適切にフォーマットされているかどうかを確認します。

使用方法

使用ルール

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

反復の最大数、またはステップサイズなどの停止条件を調整することで、トレーニングプロセスの加速が可能になります。ただし、トレーニングの停止が早すぎると精度に影響が生じるおそれがあります。

[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)に直接書き込まれます。

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