IBM Watson Studio 内で Jupyter ノートブックを使用してモデルを作成する

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

はじめに

このチュートリアルでは、IBM® Watson™ Studio 内で Jupyter ノートブックをセットアップして実行する方法を説明します。まず、Kaggle 上に用意されている、カスタマー・チャーンに関するデータセットを取得します。このデータセットには Customer Churn Analysis Jupyter ノートブック (当初、Sandip Datta が開発) が付随しており、このノートブックで機械学習モデルの典型的な開発手順を確認することができます。この手順は、以下の不可欠のステップからなります。

  1. データセットをインポートする

  2. 視覚化を作成し、基本的な統計パラメーター (平均値、標準偏差など) を検査してデータを分析する

  3. 機械学習モデルの作成に使用できるようにデータを準備する (カテゴリー特徴量から数値特徴量への変換、データの正規化など)

  4. データを、モデルのトレーニングとモデルの検証に使用する、トレーニング用とテスト用に分割する

  5. 2 項分類に対応する各種の機械学習アルゴリズムを使用してモデルをトレーニングする

  6. 混合行列を使用して、それぞれのモデルの精度を評価する

  7. 所定のデータセットに最適なモデルを選択し、精度への影響が低い特徴と高い特徴を分析する

25 個の Python セルに関して定義されているこのノートブックを活用するには、ノートブックで使用されている主要なライブラリーを十分に理解している必要があります。具体的には、機械学習用の Python scikit-learn、科学計算用の Python numpy、データ構造の管理および分析用の Python pandas、データ視覚化用の matplotlib および seaborn の各ライブラリーに関する知識が必要です。

前提条件

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

所要時間

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

手順

ラーニング・パス用の環境を構築する手順は、チュートリアル「IBM Watson Studio を使用したデータの視覚化、準備、変換」で説明しています。構築手順の概要は以下のとおりです。

  1. IBM Cloud Object Storage サービス・インスタンスを作成する
  2. IBM Watson Studio プロジェクトを作成する
  3. IBM Cloud サービスをプロビジョニングする
  4. データセットをアップロードする

ラーニング・パスに従うには、まず、以上のステップを完了しておく必要があります。環境の構築が完了している場合は、次のステップに進んでノートブックの作成に取り掛かってください。

ノートブックを作成する

カスタマー・チャーンを予測する Jupyter ノートブックを作成し、プロジェクトにアップロードしたデータセットを使用するように変更します。

  1. Asset (アセット)」タブで、「Add to Project (プロジェクトに追加)」をクリックします。

    add-to-project

  2. アセット・タイプとして「Notebook (ノートブック)」を選択します。

  3. 「New Notebook (新しいノートブック)」ページで、以下のようにノートブックを構成します。

    1. From URL (URL から)」タブを選択します。

      create-notebook

    2. ノートブックに付ける名前を入力します (例: ‘customer-churn-kaggle’)。

    3. ランタイム・システムとして「Python 3.6」を選択します。

    4. ノートブックの URL として以下の値を入力します。

      https://github.com/IBM/watson-studio-learning-path-assets/blob/master/notebooks/customer-churn-kaggle.ipynb
      
    5. Create Notebook (ノートブックを作成)」をクリックします。これで、IBM Watson Studio 内にノートブックがロードされて実行されます。

ノートブックを実行する

前の手順を完了した後、ノートブックのページが表示されているはずです。

注: 以降は、プロジェクトの「Asset (アセット)」ページ内でノートブックの隣に表示されている「Edit (編集)」アイコンをクリックすることで、ノートブックを起動できます。

start-notebook

ノートブックのページで、以下の変更を行います。

  1. 3 番目のセルまでスクロールダウンして、セルの中央にある空の行を選択します。「Files (ファイル)」サブパネルが開かれていない場合は、ページの上部にある「1001」データ・アイコンをクリックしてサブパネルを開きます。

    insert-pandas-dataframe

  2. ページの右側の部分にある「Customer Churn」データセットを選択します。「insert to code (コードを挿入)」をクリックし、「Insert pandas DataFrame (pandas DataFrame を挿入)」を選択します。これによりデータ・セルにコードが追加され、データセットを pandas DataFrame に読み込めるようになります。

    notebook-with-dataframe

  3. データ・フレームに対して生成された変数名「df_data_1」を「df」に変更します。ノートブックの残りの部分では、この変数名が使用されます。データ・フレームをノートブック内で表示すると、以下のような表示内容になります。

    data-set

  4. File (ファイル)」 > 「Save (保存)」の順に選択してノートブックを保存します。

ノートブックのセルを一度に 1 つずつ実行し、その効果とノートブックがどのように定義されるかを観察します。

ノートブックの実行に関する背景情報

ノートブックを実行すると、ノートブック内のコード・セルが上から下への順で 1 つずつ実行されます。

各コード・セルは選択可能であり、左側の余白にタグが付けられています。タグの形式は In [x]: です。ノートブックの状態に応じて、x は次のようになります。

  • 空白: セルがまだ一度も実行されていないことを意味します。
  • 数値: このコードのステップが実行される相対的順序を表します。
  • *: セルが実行中であることを意味します。

ノートブック内のコード・セルを実行するには、以下の方法があります。

  • 一度に 1 つずつセルを実行する。セルを選択してから、ツールバーで「Play (再生)」を押します。
  • バッチ・モードで順次実行する。「Cell (セル)」メニューから選択可能な項目がいくつかあります。たとえば、「Run All (すべて実行)」を選択すると、ノートブック内のすべてのセルが実行されます。「Run All Below (以降をすべて実行)」を選択すると、現在選択されているセルの下にあるセルから実行が開始され、それ以降のすべてのセルが実行されます。
  • スケジューリングした時刻に実行する。ノートブック・ページの右上のセクションにある「Schedule (スケジュール)」ボタンを押すと、将来の時刻をスケジューリングしてノートブックを 1 回実行したり、指定の間隔で繰り返し実行されるようにしたりできます。

データの理解と視覚化

データの理解フェーズでは、初期のデータセットを収集します。次に、収集したデータを十分に理解し、データの品質問題を特定し、データに関する最初の洞察を発見するための作業を続けます。Jupyter ノートブック内では、これらの作業は pandas と、pandas に具体化された matplotlib 関数を使用して行われます。特徴を説明する統計情報を生成するには pandas の describe 関数が使用されます。データの分布を示す図を生成するには plot 関数が使用されます。

data-understanding

データの準備

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

data-preparation

モデルの作成と評価

モデルの作成フェーズでは各種のモデル化手法を選んで適用し、それらの手法でのパラメーターを調整することによって予測を最適化します。一般に、適用できる手法は複数あります。中にはデータ形式に関して固有の要件を満たさなければ適用できない手法もあるため、データの準備フェーズに戻らなければならないことはよくあります。一方、モデルの評価フェーズの目標は、データ分析の観点から見て高品質のモデルを作成することです。したがって、最終的にモデルをデプロイする前に徹底的にモデルを評価することが重要となります。モデルの作成フェーズで行われる一連のステップを見直して、モデルがビジネス目標を適切に達成することを確実にしなければなりません。

Jupyter ノートブックを使用する場合、モデルの作成フェーズでは、(層別交差検証を使用して) データセットをトレーニング・データセットとテスト・データセットに分割してから、個々の分類アルゴリズム (GradientBoostingClassifier、サポート・ベクトル・マシン、ランダム・フォレスト、k 近傍法など) を使用して複数のモデルをトレーニングするというステップも行われます。

model-training

このステップが完了した後、アルゴリズムごとに混合行列を出力すると、モデルが達成した精度を詳細に調べることができます。

model-evaluation

SPSS モデルのノートブック

Watson Studio 内で Jupyter ノートブックを作成して実行する方法を学んだところで、次はチュートリアル「IBM Watson Studio 内で SPSS Modeler フローを作成する」の「API を使用して機械学習モデルにスコアを付ける」セクションに戻ってください。そこで説明している手順に従うと、Watson Studio 内にデプロイした SPSS モデルにアクセスしてスコアを付けるノートブックを実行できます。

まとめ

このチュートリアルでは、Watson Studio 内で Jupyter ノートブックを実行する際の基本的な方法を取り上げ、以下の手順を説明しました。

  • プロジェクトを作成する
  • サービスをプロビジョニングしてプロジェクトに割り当てる
  • データセットなどのアセットをプロジェクトに追加する
  • Jupyter ノートブックをプロジェクトにインポートする
  • ノートブックをロードして実行する

このノートブックの目的は、Jupyter ノートブックを使用してカスタマー・チャーンを予測する機械学習モデルの作成方法を説明することです。このラーニング・パスの他のチュートリアルでは、プログラミングの要らない別の方法として、Watson Studio に組み込まれているツールと機能を使って同じ目標を達成する方法を説明しています。