IBM Watson Studio を使用したデータの視覚化、準備、変換

このチュートリアルは、ラーニング・パス「Watson Studio 入門」の一部となっています。

はじめに

このチュートリアルの目的は、データを視覚化して理解する際、そしてデータをクレンジングおよび変換して高品質の予測モデルを作成する際に利用できる、IBM® Watson™ Studio 内の機能を説明することです。

前提条件

このラーニング・パスのいずれのチュートリアルに取り組むにも、IBM Cloud アカウントが必要です。無料のトライアル・アカウントを取得すれば、そのアカウントで IBM CloudIBM Watson StudioIBM Watson Machine Learning Service にアクセスできます。

所要時間

このチュートリアルの所要時間は約 30 分です。

手順

環境を構築する

このラーニング・パスの一連のチュートリアルに取り組むには、以下の手順を完了する必要があります。

IBM Cloud Object Storage サービス・インスタンスを作成する

Watson Studio 内にプロジェクトを作成するには、Object Storage サービスが必要です。ストレージ・サービスがまだプロビジョニングされていない場合は、以下の手順に従ってください。

  1. IBM Cloud アカウントで、IBM Cloud Catalog内の「Object Storage」を検索し、「Object Storage」タイルをクリックします。

    object-storage-tile

  2. 作成するサービス・インスタンスに付ける名前を入力し、サービスのバージョンとして「Standard (スタンダード)」(無料) を選択します。

    object-storage-create

  3. Resource Group (リソース・グループ)」にはデフォルトのボールトを使用することもできますが、IBM Cloud 内に作成した専用グループを使用することをお勧めします。IBM Cloud 内に新しいリソース・グループを作成するためのコマンドを見つけるには、「Manage (管理)」 > 「Account (アカウント)」メニュー項目を選択してから、左側のツールバーで「Account resources (アカウント・リソース)」 > 「Resource groups (リソース・グループ)」を選択します。表示されるページの右上隅に、「Create (作成)」ボタンがあります。

  4. Create (作成)」をクリックします。

Watson Studio プロジェクトを作成する

このラーニング・パスに使用できる既存のプロジェクトがない場合は、新しいプロジェクトを作成します。

  1. IBM Cloud アカウントとして作成したアカウントを使用して Watson Studio にサインインします。

  2. Create a project (プロジェクトを作成)」または「New project (新しいプロジェクト)」をクリックします。

  3. Create an empty project (空のプロジェクトを作成)」を選択します。

    create-empty-project

  4. New project (新しいプロジェクト)」ウィンドウで、作成するプロジェクトに付ける名前を入力します (例: Watson Machine Learning)。

    create-project

  5. Storage (ストレージ)」では、前のステップで作成した IBM Cloud Object Storage サービス・インスタンスを選択します。作成したインスタンスが唯一のプロビジョニング済みストレージ・サービスであれば、これが自動的に割り当てられます。

  6. Create (作成)」をクリックします。

IBM Cloud サービスをプロビジョニングする

注: このセクションでは、プロジェクト用の新しいサービスを作成する方法を説明します。ここで作成するサービスのうち、すでにプロビジョニングしたものがある場合は、新しいサービスを作成するのではなく、プロビジョニング済みのサービスを選択できます。

Watson Machine Learning サービス

Machine Learning サービスをプロビジョニングして現在のプロジェクトに関連付けるには、以下の手順に従います。

  1. プロジェクトの「Settings (設定)」タブを選択します。

  2. Associated services (関連付けられているサービス)」セクションまでスクロールダウンします。

    add-ml-service

  3. Add Service (サービスの追加)」をクリックします。

  4. ドロップダウン・メニューから「Watson」を選択します。

  5. 次のページでは「Machine Learning (機械学習)」サービス・タイル内の「Add (追加)」をクリックします。

  6. 次のページでは「New (新規)」タブを選択して新しいサービスを作成します。

  7. 現時点では「Lite plan (ライト・プラン)」のままにします (必要に応じて、後で変更できます)。

  8. Create (作成)」までスクロールダウンし、このボタンをクリックしてサービスを作成します。

  9. Confirm Creation (作成の確認)」ウィンドウが開きます。このウィンドウで、サービスの詳細 (地域、プラン、リソース・グループ、サービス名など) を指定できます。

    confirm-ml-service

  10. サービス・インスタンスに付ける名前を入力します (必要に応じて、生成された名前に「watson-machine-learning」という接頭辞を付けることもできます)。

  11. Resource group (リソース・グループ)」にはデフォルトのボールトを使用することもできますが、IBM Cloud 内に作成した専用グループを使用することをお勧めします。IBM Cloud 内に新しいリソース・グループを作成するためのコマンドを見つけるには、「Manage (管理)」 > 「Account (アカウント)」メニュー項目を選択してから、左側のツールバーで「Account Resources (アカウント・リソース)」 > 「Resource Groups (リソース・グループ)」を選択します。表示されるページの右上隅に、「Create (作成)」ボタンがあります。

  12. Confirm (確認)」をクリックします。

IBM Cognos Dashboard Embedded サービス

IBM Cognos Dashboard Embedded サービスをプロビジョニングして現在のプロジェクトに関連付けるには、以下の手順に従います。

  1. プロジェクトの「Settings (設定)」タブを選択します。

  2. Associated services (関連付けられているサービス)」セクションまでスクロールします。

  3. Add Service (サービスの追加)」をクリックします。

  4. ドロップダウン・メニューから「Dashboard (ダッシュボード)」を選択します。

    add-dashboard-service

  5. 次のページでは「New (新規)」を選択して新しいサービスを作成します。

  6. 現時点では「Lite plan (ライト・プラン)」のままにします (必要に応じて、後で変更できます)。

  7. Create (作成)」をクリックしてサービスを作成します。

    Confirm Creation (作成の確認)」ウィンドウが開きます。このウィンドウで、サービスの詳細 (地域、プラン、リソース・グループ、サービス名など) を指定できます。

    confirm-dashboard-service

  8. サービス・インスタンスに付ける名前を入力します (必要に応じて、生成された名前に「watson-machine-learning」という接頭辞を付けることもできます)。

  9. Resource group (リソース・グループ)」で、他の IBM Cloud サービスのプロビジョニングに使用したのと同じリソース・グループを選択します。

  10. Confirm (確認)」をクリックします。

データセットをアップロードする

次は、Kaggle からデータセットをダウンロードして、それを Watson Studio にアップロードします。

  1. Kaggle (https://www.kaggle.com/sandipdatta/customer-churn-analysis) 上にあるデータセットの URL にナビゲートして、データセットのファイルをローカル・デスクトップにダウンロードします。

  2. ファイル名をわかりやすい名前に変更します (例: ‘customer-churn-kaggle.csv’)。

  3. Watson Studio 内で「Assets (アセット)」を選択します。

  4. Files (ファイル)」サブパネルがまだ開かれていない場合は、パネルの右上にある「1001」データ・アイコンをクリックして開きます。次に、「Load (ロード)」をクリックします。

    upload-data-set

  5. ファイルをドロップ領域にドラッグします。これで、データが Watson Studio にアップロードされます。

  6. ファイルのアップロードが完了するまで待ちます。

背景

環境を構築する手順が完了したら、このチュートリアルのメイン・トピック、つまりデータの全容に焦点を絞ることができます。このチュートリアルでは、データを視覚化してから、最適化された高品質の予測モデルの作成に使用できるようにデータを準備して変換します。

これらの作業を行うには、従来のデータ・サイエンスのアプローチでは Jupyter ノートブック内で Python プログラミング言語のコードを実行します。Jupyter ノートブックによる手法はラーニング・パスの別のチュートリアル「IBM Watson Studio 内で Jupyter ノートブックを使用してモデルを作成する」で取り上げることとして、このチュートリアルでは同じ目標を達成する別の手法として、Watson Studio に用意されている機能とツールを使用します。この場合、プログラミングは一切必要ありません。

Watson Studio 内での基本的な視覚化

データの収集の後に続くステップは、「データの理解」フェーズと呼ばれます。このフェーズで取り組む作業によって、データを十分に理解し、データの品質問題を特定し、データに関する最初の洞察を発見します。

Watson Studio 内では、このフェーズを単純な操作で完了することができます。しかも、コードを作成する必要は一切ありません。Watson Studio 内でデータセットを表示するには、データ・アセットを見つけて、その名前をクリックします。これで、データセットが開きます。

select-data-set

Watson Studio の「Preview (プレビュー)」タブに、データのプレビューが表示されます。

data-preview

あるいは、「Profile (プロファイル)」タブに表示されるプロファイル情報で値の分布を確認することもできます。数値で表される特徴については、その特徴の最大値、最小値、平均値、標準偏差も示されます。

data-profile

数値型の列は varchar 型であると識別されていますが、プロファイラーはこれらの列が数値型であると認識できるほど優秀なので、列の値を文字列から数値に暗黙的に変換して、平均値と標準偏差を計算します。

初めてプロフィルを生成するには、以下の手順に従います。

  1. Profile (プロファイル)」タブを選択します。

  2. Create Profile (プロファイルの作成)」コマンドを呼び出します。

  3. しばらく待ってから、ページを更新します。

churn パラメーターを指定しても、チャーンと非チャーンの観測結果はバランスのとれた分布になっていないことに注意してください。この状態は、モデルの作成と評価のフェーズで相互検証戦略を採用する必要があることを意味する可能性があります。

churn-values

Cognos Dashboard サービスを利用したその他の視覚化

データセットをさらに詳しく調べるには、関連する視覚化を表示するダッシュボードを作成します。それには基本的に、空のダッシュボードを作成し、視覚化に使用するデータ・ソースを追加し、適切な視覚化をダッシュボードに追加するという 3 つのステップが必要です。

ダッシュボードを作成するには、以下の手順に従います。

  1. Add to project (プロジェクトに追加)」をクリックします。

  2. Dashboard (ダッシュボード)」をクリックして新しいダッシュボードを作成します。

  3. New Dashboard (新しいダッシュボード)」ページで以下の操作を行います。

    1. Name (名前)」に、ダッシュボードの名前を入力します (例: ‘customer-churn-dashboard’)。

    2. Description (説明)」に、ダッシュボートの説明を入力します (省略可)。

    3. Cognos Dashboard Embedded Service (Cognos Dashboard Embedded サービス)」で、前に作成したダッシュボード・サービス・インスタンスを選択します。

      create-dashboard

    4. Save (保存)」をクリックします。

  4. 次のページでは「Freeform (フリーフォーム)」テンプレートを選択します。

    free-form-diagram

  5. タブ付きダッシュボードを作成するデフォルト設定をそのまま受け入れます。

  6. OK」をクリックします。これで、1 つのタブを持つフリーフォームのダッシュボードが空の状態で作成されます。

データ接続を追加するには、以下の手順に従います。

  1. ページの左上隅にある「Add a source (ソースを追加)」ボタン (+ アイコン) をクリックします。

    select-source

  2. Select (選択)」をクリックし、カスタマー・チャーン・データ・ソースを選択します。

  3. ダッシュボードに戻り、新しくインポートしたデータ・ソースを選択します。

  4. パネルの右下にあるテーブル・アイコンをクリックして、データ・ソースをプレビューします。

    show-churn-data

  5. >」をクリックしてデータ・ソースを展開し、列を表示します。

    data-source-columns

表示された列のプロパティーは変更することができます。それには、列名の右側にある 3 つのドットをクリックし、表示されるポップアップ・メニューから「Properties (プロパティー)」を選択すればよいだけです。これにより、上記に示されているウィンドウが表示されます。このウィンドウで、「Usage (用途)」(「Identifier (識別子)」、「Attribute (属性)」、「Measure (測定)」) と「Aggregate Function (集計関数)」(「Count (値の数のカウント)」、「Count Distinct (ユニークな値の数のカウント)」、「Maximum (最大値)」、「Minimum (最小値)」) のデフォルト設定を変更できます。今のところは、デフォルトの設定をそのまま使用するので構いません。

チャーンと非チャーンの分布を円グラフで示す視覚化を作成するには、以下の手順に従います。

  1. 左側のツールバーにある「Visualizations (視覚化)」アイコンを選択します。

  2. Pie (円)」グラフを選択します。

  3. 円グラフのプロパティーを指定するためのフォームが作成されます。例えば、データセットの列を使用してプロパティーを指定することができます。

    create-visualization

  4. 左側のツールバーにある「Sources (ソース)」アイコン (「Visualizations (視覚化)」アイコンの上にあります) を選択します。

  5. churn 列を円グラフの「Segments (セグメント)」プロパティーまでドラッグします。

  6. churn 列を円グラフの「Size (サイズ)」列までドラッグします。

    visualization-props

  7. フォームの右上にある「Collapse (縮小)」矢印 (上の図を参照) をクリックします。これにより、円グラフが最小化されてダッシュボード上にレンダリングされます。

  8. 左上にある「Tab (タブ)」を選択し、「Edit the title (タイトルを編集)」ボタンをクリックします。

    initial-dashboard

  9. タブのタイトルを入力します (例: ‘Customer Churn’)。

以上の手順に従って、さらに 2 つの視覚化を作成します。

  • X 軸上に「State (状態)」(視覚化プロパティーの棒)、Y 軸上にチャーン (長さ、色) を示す積み上げ棒グラフ

  • インターナショナル・プラン (セグメント、長さ) の分布を示す円グラフ

以上の視覚化を作成すると、以下の図に示すようなダッシュボードになるはずです。各視覚化の上部にある「Move widget (ウィジェットを移動)」コマンドを使用すると、ダッシュボード上の視覚化を移動できます。

final-dashboard

ダッシュボードは基本的に動的であり、フィルターを使用してデータを探索できるようになっています。「International Plan (インターナショナル・プラン)」の視覚化で、値「yes」に関連付けられたスライスをクリックしてください。これにより、現在のダッシュボード上のその他すべての (接続された) 視覚化に適用されるフィルターが作成されます。

filtered-dashboard

フィルターを適用すると、左側の視覚化の中に示されているチャーンのスライスが大幅に大きくなることに注目してください。これはつまり、国際プランに参加しているクライアントは、そうでないクライアントよりも解約する可能性が高いことを意味します。フィルターを除去するには、右上隅にある視覚化のフィルター・アイコンをクリックし、ポップアップ表示されるフィルターの削除アイコン (?印を円で囲んだアイコン) を選択します。スライスをもう一度クリックするのでも、同じ結果を得られます。

Refine サービスを利用したデータの準備と変換

データの準備フェーズでは、機械学習サービスに取り込む最終的なデータセットを作成するために必要なすべての作業を行います。一般に、データを準備するための一連のタスクは順不同で複数回行います。これらのタスクには、テーブル、レコード、属性を選択するタスクと、モデル作成ツールで使用できるようにデータを変換してクレンジングするタスクが含まれます。また、カテゴリー特徴を数値で表された特徴に調整する作業や、特徴の正規化、予測に関連しない列 (クライアントの電話番号など) の削除といった作業が必要になる場合もあります。

ただし、IBM Watson AutoAI と Watson Machine Learning サービスを利用して半自動的に、あるいは完全自動でモデルを作成するとしたら、こうした作業は必要ありません。(現在のデータセットで) データを準備する際に、AutoAI サービスがバックグラウンドで自動的に処理してくれるからです。その仕組みについては、このラーニング・パスの別のチュートリアル「IBM Watson Studio 内でモデルの作成を自動化する」で説明します。

Watson Studio に用意されている Data Refine というサービスを利用することもできます。このサービスを利用すれば、プログラミングの作業を完全に省いてデータのクレンジングと変換を行うことができます。このサービスを実行するには、以下の手順に従います。

  1. プロジェクトの概要ページで、上部のバーにある「Add to project (プロジェクトに追加)」をクリックします。

  2. Choose asset type (アセットのタイプの選択)」ウィンドウで、「Data Refinery Flow (データ精製フロー)」を選択して新しいフローを作成します。

  3. 次のページではカスタマー・チャーン・データセットを選択し、「Add (追加)」をクリックします。

  4. データ・ソースが開き、データを変換、表示できるようになります。

Data Refine サービスを起動するには、データセットの「Preview (プレビュー)」パネルで「Refine (精製)」をクリックするという方法もあります。

start-refine

Data Refine サービスがロードされて、以下の図に示すテーブルが表示されます。

refine-data-set

(前のセクションで行ったように) データのプロファイルを作成する場合や、カスタム視覚化を作成する場合は、左上に並んでいるタブをクリックすると、データを表形式で表示できます。

データを変換するには、以下の手順に従います。

  1. 「phone number (電話番号)」列にある 3 つのドットを選択し、プルダウン・メニューから「Remove (削除)」コマンドを呼び出します。これにより、この列が削除されます。

    remove-phone-num

  2. total days minutes (合計日数の分数)」特徴列を選択します。この列の実際の型は文字列型ですが、数値に変換する必要があります。

  3. 左上隅にある「Operation (処理)」ボタンをクリックして、使用可能な変換処理を表示します。

    transform-operation

これで、列の型を (浮動小数点型、整数型などに) 変換できるようになりますが、ここではその必要はありません。型の変換は、Machine Learning サービスが舞台裏で自動的に行ってくれるからです。ただし原則的には、「total day minutes (合計日数の秒数)」列を整数型に変換して小数点以下の数値を整数に丸めるように指定できます。あるいは、この列を浮動小数点型に変換することも可能ですが、とりあえず先に進んで、定義したフローを実行し、その結果を確認しましょう。

  1. ツールバーにある「Run Data Refinery flow (Data Refinery フローを実行)」ボタンをクリックします。このボタンのアイコンは矢印です。

  2. Save and create a job (ジョブを保存して作成する)」項目を選択します。

    save-and-create-job

  3. 次のページでフローの名前を指定し、必要に応じて説明を入力できます。出力ファイルには、アセット名に「shaped」という接尾辞が追加された名前が付けられます。

  4. Create and run (作成して実行)」をクリックします。

上記の操作により、入力ファイル、出力ファイル、実行内容を示すウィンドウが表示されます。フローが自動的に実行されるよう、フローのスケジュールを設定できるタブもあります。

refine-job-status

プロジェクトのページに戻り出力ファイルとフローがプロジェクトのアセットに含まれていることを確認します。

new-refine-flow-asset

新しく作成されたフロー・アセットをクリックすると、「phone number (電話番号)」列が削除されていることを確認できます。

このように、Data Refinery フローを使用するとプログラミングの作業を一切省いて、あっという間にデータを変換できます。Data Refinery フローが Jupyter ノートブックや numpy と pandas の強力な機能に置き換わることは決してありませんが、データを迅速にクリーンアップするには重宝します。複雑な変換と計算には、Jupyter ノートブックあるいは SPSS Modeler フローを使用してください (その方法については、このラーニング・パスに含まれる他のチュートリアルで説明します)。

まとめ

このチュートリアルでは、データの視覚化、準備、変換に使用できる、Watson Studio 内のツールのいくつかを紹介しました。

ここで取り上げたトピックには、データ・アセットのプレビューとプロファイル生成、視覚化を作成するための Cognos Dashboard の構築、Data Refine フロー・ツールを使用したデータの変換が含まれます。

このラーニング・パスの残りのチュートリアルでは、これらのタスクに対処する別の方法を説明するとともに、次の段階に進みます。つまり、データを使用して予測モデルを作成、デプロイします。次のチュートリアルでは、IBM Studio AutoAI Experiment ツールについて説明します。このツールでは、プログラミングなしで機械学習モデルを作成、評価、デプロイ、テストすることができます。