Apache Spark BatchのtSVMModelプロパティ
これらのプロパティは、Spark Batchジョブのフレームワークで実行されているtSVMModelを設定するために使われます。
Spark BatchのtSVMModelコンポーネントは、機械学習ファミリーに属しています。
このコンポーネントは、ビッグデータ対応のTalend Platform製品およびTalend Data Fabricで利用できます。
基本設定
[Schema] (スキーマ)と[Edit schema] (スキーマを編集) |
スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。 スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。
|
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次元空間では、分類される点が線形的に分離可能な場合、この超平面は線または線のセットになる可能性があります。 使用可能なファンクションは次のとおりです。
|
[Gradient function] (勾配ファンクション) |
損失ファンクションを選択して、超平面といずれかのクラスの最も近い点との間のマージンを計算します。 このドロップダウンリストで使える損失ファンクションの詳細は、分類の損失ファンクションを (英語のみ)ご覧ください。 |
詳細設定
[Use feature scaling] (機能スケーリングの使用) |
トレーニングデータが収束できない場合は、このチェックボックスをオンにして、 tSVMModelが機能データをスケーリングすることにより条件数をヒューリスティックに減らします。 多くの場合、条件数を減らすと収束率が向上します。 |
[Intercept] (インターセプト) |
このチェックボックスをオンにすると、tSVMModelがインターセプト定数を自動的に計算し、それらを計算に含めます。 一般に、インターセプトはモデルの残差の平均がゼロであることを保証できます。 |
[Validate data before training] (トレーニング前にデータを検証) |
このチェックボックスをオンにして、トレーニングを開始する前にトレーニングデータのベクトルが適切にフォーマットされているかどうかを確認します。 |
使用方法
使用ルール |
このコンポーネントは、終了コンポーネントとして使用され、入力リンクを必要とします。 反復の最大数、またはステップサイズなどの停止条件を調整することで、トレーニングプロセスの加速が可能になります。ただし、トレーニングの停止が早すぎると精度に影響が生じるおそれがあります。 |
[Model evaluation] (モデル評価) |
設定する必要があるパラメーターは自由パラメーターであるため、値は以前の実験や経験的推測などによって提供される場合があります。すべてのデータセットに適用できる最適値はありません。 したがって、最適な混同行列が得られるまで、さまざまなパラメーター値のセットを使って生成する分類子モデルをトレーニングする必要があります。ただし、モデルをスコアでランク付けするためには自分で評価コードを記述する必要があります。 分類子モデルのトレーニングに使うアルゴリズムに応じて、使うスコアを選択する必要があります。これにより、最も適切な混同行列を作成できます。 混同行列を分類用のTalendジョブに使う方法の例は、スパムをフィルタリングする分類モデルを作成をご覧ください。 混同行列に関する一般的な説明は、Wikipediaのhttps://en.wikipedia.org/wiki/Confusion_matrix (英語のみ)をご覧ください。 |
[Spark Connection] (Spark接続) |
[Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリーを指定する必要があります。
この接続は、ジョブごとに有効になります。 |