メイン コンテンツをスキップする 補完的コンテンツへスキップ

都市内の事故が発生しやすい地域をモデリングする

このシナリオでは、tKMeansModelコンポーネントを使って、事故が発生しやすい地域をモデリングするために、都市内の救急車の目的地に関するサンプル地理データセットを分析します。

始める前に

  • 使うSparkのバージョンは1.4以降です。

  • サンプルデータがHadoopファイルシステムに保管されており、少なくともそれを読み取るための適切な権限とアクセス権があること。

  • Hadoopクラスターが正しくインストールされ、実行中であること。

    これらの要件が不明な場合は、Hadoopシステムの管理者にお問い合わせください。

  • [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になるため、tHDFSConfigurationを使用します。

    • [Standalone mode] (スタンドアロンモード): クラスターで使われているファイルシステム(tHDFSConfiguration Apache Spark BatchtS3Configuration Apache Spark Batchなど)に対応する設定コンポーネントを使用します。

      ジョブ内に設定コンポーネントがない状態でDatabricksを使用している場合、ビジネスデータはDBFS (Databricks Filesystem)に直接書き込まれます。

このタスクについて

  • このシナリオは、サブスクリプションベースのビッグデータ対応のTalend製品にのみ適用されます。

  • このようなモデルは、病院の建設に最適な場所を判断するのに役立ちます。
  • サンプルデータは、緯度と経度のペアで構成されます。これはデモンストレーションのみを目的としてランダムに自動生成されたものであり、いかなる場合も、現実の世界におけるこれらの領域の状況を反映するものではありません。
  • 以下のコンポーネントを使用します:
    • tFileInputDelimited: サンプルデータをジョブのデータフローに読み取ります。

    • tReplicate: サンプルデータを複製し、複製をキャッシュします。

    • tKMeansModel: データを分析してモデルをトレーニングし、モデルをHDFSに書き込みます。

    • tModelEncoder: データを前処理して、tKMeansModelで使う適切な特徴ベクトルを準備します。

    • tPredict: サンプルデータの複製にK-meansモデルを適用します。現実の世界では、このデータは、モデルの精度をテストするための参照データセットである必要があります。

    • tFileOutputDelimited: 予測の結果をHDFSに書き込みます。

    • tHDFSConfiguration: このコンポーネントは、ジョブに依存するjarファイルの転送先となるHDFSシステムに接続するために、Sparkによって使用されます。

K-Meansジョブのデータフローを配置する

手順

  1. Talend StudioIntegrationパースペクティブで、[Repository] (リポジトリー)ツリービューのJob Designsノードから空のジョブを1つ作成します。
  2. 使用するコンポーネントの名前をワークスペースに入力し、表示されるリストからそのコンポーネントを選択します。
  3. [Row] (行) > [Main] (メイン)接続を使って、tFileInputDelimitedtReplicateに接続します。
  4. 同じようにして、tReplicatetModelEncoderに、tModelEncodertKMeansModelに接続します。
  5. 操作を繰り返して、tReplicatetPredictに、tPredicttFileOutputDelimitedに接続します。
  6. tHDFSConfigurationはそのままにしておきます。

Sparkが使用するファイルシステムに接続を設定

手順は、Getting Started Guideをご覧ください。

サンプルデータを読み取ってキャッシュ

手順

  1. 最初のtFileInputInputコンポーネントをダブルクリックし、[Component] (コンポーネント)ビューを開きます。
  2. [Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックし、ポップアップスキーマダイアログボックスで、倍数型の2つのカラムlatitudelongitudeを追加してスキーマを定義します。
  3. [OK]をクリックしてこれらの変更を確認し、ポップアップ表示されるダイアログボックスで求められるプロパゲーションを承認します。
  4. [Define a storage configuration component] (ストレージ設定コンポーネントを定義)チェックボックスをオンにし、使うtHDFSConfigurationコンポーネントを選択します。
    tFileInputDelimitedはこの設定を使い、トレーニングセットとして使われるサンプルデータにアクセスします。
  5. [Folder/File] (フォルダー/ファイル)フィールドで、トレーニングセットが保管されているディレクトリーを入力します。
  6. tReplicateコンポーネントをダブルクリックし、[Component] (コンポーネント)ビューを開きます。
  7. [Cache replicated RDD] (複製されたRDDをキャッシュする)チェックボックスをオンにし、[Storage level] (ストレージレベル)ドロップダウンリストから[Memory only] (メモリのみ)を選択します。このようにして、このサンプルデータは複製され、テストセットとして使うためにメモリに保存されます。

K-Meansの機能を準備する

手順

  1. tModelEncoderコンポーネントをダブルクリックして、[Component] (コンポーネント)ビューを開きます。
  2. [Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックし、ポップアップスキーマダイアログボックスのtModelEncoder側で、Vectorタイプのmapという名前のカラムを1つ追加して、スキーマを定義します。
  3. [OK]をクリックしてこれらの変更を確認し、ポップアップ表示されるダイアログボックスで求められるプロパゲーションを承認します。
  4. [Transformations] (変換)テーブルで[+]ボタンをクリックして1行を追加し、次の手順を実行します。
    1. [Output column] (出力カラム)カラムで、機能を持つカラムを選択します。このシナリオではmapです。
    2. [Transformation] (変換)カラムで、変換に使うアルゴリズムを選択します。[Vector assembler] (Vectorアセンブラー)です。
    3. [Parameters] (パラメーター)カラムに、Vectorアセンブラーアルゴリズムで使うためにカスタマイズするパラメーターを入力します。このシナリオでは、inputCols=latitude,longitudeと入力します。
    この変換では、tModelEncoderはすべての機能Vectorを1つの機能カラムに結合します。
  5. tKMeansModelをダブルクリックして[Component] (コンポーネント)ビューを開きます。
  6. [Define a storage configuration component] (ストレージ設定コンポーネントを定義)チェックボックスをオンにし、使うtHDFSConfigurationコンポーネントを選択します。
  7. [Vector to process] (処理するVector)リストから、分析する機能Vectorを提供するカラムを選択します。このシナリオでは[map] (マップ)を選択します。これはすべての機能を組み合わせます。
  8. [Save the model on file system] (モデルをファイルシステムに保存)チェックボックスをオンにし、表示された[HDFS folder] (HDFSフォルダー)フィールドに、生成されたモデルの保管に使うディレクトリーを入力します。
  9. [Number of cluster] (クラスター数)フィールドに、tKMeansで構築するデシジョンツリーの数を入力します。現在のジョブを実行してクラスタリングモデルを作成するには、さまざまな数を数回試す必要があります。各実行で作成されたすべてのモデルの評価結果を比較した後、使う必要がある数を判断できます。たとえば、6を入れます。
    評価コードは自分で書く必要があります。
  10. 初期化ファンクションから[Random] (ランダム)を選択します。一般に、このモードは単純なデータセットに使います。
  11. その他のパラメーターはそのままにしておきます。

KMeansモデルをテストする

手順

  1. tPredictをダブルクリックして、[Component] (コンポーネント)ビューを開きます。
  2. [Define a storage configuration component] (ストレージ設定コンポーネントを定義)チェックボックスをオンにし、使うtHDFSConfigurationコンポーネントを選択します。
  3. [Model type] (モデルタイプ)ドロップダウンリストから[Kmeans model] (K-meansモデル)を選択します。
  4. [Model on filesystem] (ファイルシステムのモデル)ラジオボタンを選択し、K-Meansモデルが保存されているディレクトリーを入力します。
    この場合、tPredictコンポーネントには、モデルがクラスターのラベルを提供するlabelと呼ばれる読み取り専用のカラムが含まれています。
  5. tFileOutputDelimitedをダブルクリックして[Component] (コンポーネント)ビューを開きます。
  6. [Define a storage configuration component] (ストレージ設定コンポーネントを定義)チェックボックスをオンにし、使うtHDFSConfigurationコンポーネントを選択します。
  7. [Folder] (フォルダー)フィールドで、予測結果を保管するHDFS内の場所を参照します。
  8. [Action] (アクション)ドロップダウンリストから、[Overwrite] (上書き)を選択します。ターゲットフォルダーが存在しない時は、[Create] (作成)を選択します 。
  9. [Merge result to single file] (結果を単一ファイルにマージ)チェックボックスをオンにしてから 、[Remove source dir] (ソースディレクトリーを削除)チェックボックスをオンにします。
  10. [ Merge file path] (ファイルパスをマージ)フィールドで、マージされた予測結果を保管するHDFS内の場所を参照します。

Sparkモードの選択

手順は、Getting Started Guideをご覧ください。

ジョブを実行

手順

  1. Ctrl + Sを押してジョブを保存します。
  2. F6を押してジョブを実行します。
    マージされた予測結果はHDFSに保管されます。この結果は評価プロセスを使って評価できます。次に、最適なモデルを取得するために、さまざまなK-meansパラメーターでこのジョブをさらに実行します。

タスクの結果

次の画像は、予測されたクラスターの例を示しています。この視覚化は、Pythonスクリプトを介して生成されます。このスクリプトはここからダウンロードできます。スクリプト内のパスを調整して自分のマシンの予測結果にアクセスすることを覚えておいてください。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。