アソシエーション分析入門 #02

Cloud Datalabを選ぶ理由。

アソシエーションルールを用いたアソシエーション分析の実践を進めて行きますが、分析ツールはGoogle BigQueryGoogle Cloud Datalabを用います。BigQueryついては「BigQueryではじめるSQL」を参照してください。

Cloud Datalabは、Googleが提供するクラウドサービスで、フルマネージドなPython実行環境であり、総合的なクラウドコンピューティングサービスであるGCP(Google Cloud Platform)の一部です。その特長は以下のようになります。

  • ブラウザUIの対話式プログラム実行環境で非常に手軽。
  • クラウドの高性能なCPU・GPU・TPUを利用可能。
  • メジャーな機械学習系ライブラリがインストール済み。
  • BigQueryなどのGCPのクラウドサービスとシームレスに連携。

なお、Cloud Datalabに近いものとして「ColabではじめるPython」でも紹介した、同じくGoogleが提供するGoogle Colab1)ColabではじめるPythonという無料サービスがあります。どちらもブラウザUIの対話式プログラム実行環境を提供するクラウドサービスですが、Cloud DatalabはColabと違い、GCPの一部となるため利用料がかかります。ただ、Colabはあくまで教育・研究用であり、秘匿性の高いデータを扱うことができないなどの制約があるため、ビジネス利用にはCloud Datalabを推奨します。

また、GCPのクラウドサービスとシームレスに連携できるという特長があります。具体的には、Cloud DatalabからBigQueryに直接クエリを実行できるため、データ準備(Data Preparation)をBigQueryでSQLにより行い、データマイニング(Data Mining)2)再考するデータマイニング機械学習(Machine Learning)3)いまさら聞けない機械学習をCloud DatalabでPythonにより行うといった役割分担が容易になります。なお、BigQueryとのクエリ連携はColabでも可能です。

今回は「データエスノグラフィ入門」と連動し、とある総合ECサイトの商品の併売傾向を深堀分析するという設定でアソシエーション分析の実践を行うため、ビジネス利用を想定し、かつBigQueryとのシームレスな連携に優れるCloud Datalabを用いることにします。

Cloud Datalab環境を準備。

ColabはGoogleアカウントがあればすぐに始められますが、Cloud Datalabは環境の準備が必要です。まずはGCPコンソールにアクセスします。BigQueryの利用経験があれば、デフォルトプロジェクトのダッシュボードが表示されるはずです。GCPの通常のサービスは左上のハンバーガーメニューからサービスを選ぶだけで利用できますが、Cloud Datalabは現在はβ版ということもあり、そうなっていません。そこで以下の手順で環境を構築します。

  1. Cloud Source Repositories API設定ページにアクセスし[有効にする]ボタンをクリック
  1. 画面右上の[Cloud Shellをアクティブにする]ボタンをクリック
  1. 画面下部の[Cloud Shell]ペインに以下のコマンドを入力し[Enterキー]で実行(※インスタンス名は任意、ここでは「xmdcom-lab」と命名)
$ datalab create xmdcom-lab
  1. 画面下部の[Cloud Shell]ペインに表示される「Your selected zone:」のメッセージのあとに、ゾーン(zone)の選択肢に記載された番号を入力し[Enterキー]で実行(※ゾーンは任意、ここでは「34」を指定)
$ Your selected zone:34
  1. Datalabインスタンス「xmdcom-lab」の作成が完了したら[Cloud Shell]の右上の[ウェブでプレビュー]ボタンをクリックし[ポートの変更]を選択
  1. [プレビュー ポートの変更]モーダルでポート番号を「8081」と入力し[変更してプレビュー]ボタンをクリック
  1. 別ウィンドウで[Google Cloud Datalab]の画面が表示

これでCloud Datalabの利用が可能となります。

まずはお約束の「Hello, World!」

では、Cloud Datalabの操作方法を解説しながら、簡単なPythonプログラムを動かしてみます。まずは起動された[Google Cloud Datalab]画面の左上の[Notebook]ボタンをクリックして、ノートブック編集画面を立ち上げます。ここでいうノートブック(Notebook)は、対話式でプログラムを実行するUIの ことです。

ところでCloud Datalabは、Jupyter NotebookというブラウザUIの対話式プログラム実行環境をベースにしていますが、「Python vs. R どっち?」でも触れたとおり、Jupyter NotebookはPythonだけでなくRやJuliaなどのプログラム言語にも対応しています。それぞれのプログラム言語を動作させるためのコアエンジンをカーネル(Kernel)といい、どのカーネルを利用するかをUI上で選択した上でプログラムを実行します。

Cloud DatalabはいまのところRやJuliaには対応しておらずPythonのみですが、Python2とPython3の選択は可能です。この二つはPythonのバージョン違いですが、文法・関数・拡張モジュールなどが大きく異なり、互換性が高くありません。したがってプログラムを作成する前に、どちらを選択するかを明確にしておく必要があります。ここではPython3を選択します。

ノートブックの右上の[Kernel: python2]となっているエリアをクリックして[Kernel: python3]を選択します。これでプログラムをPython3で実行することが可能となります。

ノートブックには以下のような入力エリアがあり、ここにソースコードを記述して左端の「▶︎」ボタンをクリックするか、[Ctrl+Enter]もしくは[Shift+Enter]キーによりプログラムを実行できます。

ひとまず、お約束の「Hello, World!」を表示するプログラムを書いてみましょう。入力エリアに「print (‘Hello, World!’)」と記述し、実行してみてください。以下のように「Hello, World!」が出力エリアに表示されるかと思います。

なおCloud Datalabは、Google Compute Engine(GCE)という仮想マシン(Virtual Machine:VM)上でコンテナとしてパッケージ化されているものです。すなわちCloud Datalab起動中はGCEも起動されており、さらに課金体系はGCEに従うため、起動時間による従量課金となります。ということで、使わないときはCloud Datalabを終了しておいたほうがよいでしょう。

Cloud Datalabを終了するには、画面右上の[Account]ボタンをクリックして[Stop VM]ボタンをクリックします。終了すると[Cloud Shell]ペインに以下のようなメッセージが表示され、GCEのVMインスタンスも終了します。

$ Instance xmdcom-lab is no longer running (STOPPING)

Cloud Datalabを再び使う場合は、[Cloud Shell]ペインに以下のコマンドを入力し[Enterキー]で実行します。

$ datalab connect xmdcom-lab

次回はCloud Datalabを利用した、Pythonによるアソシエーション分析のプログラミングを実践していきます。

脚注   [ + ]