未来を創る、テックコミュニティー

5/13 代表勉強通信~PyCaret with Power BI(Microsoft)

草場代表
2020/05/13

こんばんは。代表の草場です。

本日はPyCaretに関して、続報です。PyCaretのファウンダーのMoez Ali氏が、使い方等を記事にしてくれています(こちらの記事)。とても面白いので、試しにやってみました。

今回は、PyCaretをPower BIに統合する方法についてです。Power BIは、マイクロソフト社が出しているBIツールです。この記事からは、Power BIに以下の機能を実装する方法が学べます。
・クラスタリング – 類似の特性を持つデータポイントをグループ化
・異常検出 – データ内のまれな観察/異常値を特定
・自然言語処理 – トピックモデリングを介してテキストデータを分析
・アソシエーションルールマイニング – データから興味深い関係性を発見
・分類 – バイナリ(1または0)のカテゴリカルなクラスラベルを予測
・回帰 – 売上や価格などの連続的な値を予測

今回は基本的な使い方を説明します。

まずは準備として、仮想環境の作成です。Anacondaで仮想環境作成し、そこに移動。そしてPyCaretをインストール(pip install pycaret)。
事前に自分のPCにインストールしたPower BIデスクトップを開き、上記で作成した仮想環境をPower BIとリンクします。Power BIデスクトップで、「ファイル→オプション→グローバル→Pythonスクリプト」で、以下を記入します。
※自分のPCでAnaconda3を入れたフォルダを探して、作成した仮想環境を入れること
C:\Users\username\云々\anaconda3\envs\myenv

さて、準備完了です。一通り試しましたが、今回はクラスタリングに関して。アソシエーションルールマイニングも興味深いのですが、よく理解できていないのでまた次回。

■クラスタリング
クラスタリングは、類似した特性を持つデータポイントをグループ化する機械学習の手法です。データの探索、パターンの特定などに役立ちます。クラスタリングの一般的なビジネスでの使用例は、マーケティングのための顧客セグメンテーション、プロモーションや割引のための顧客の購買行動分析、COVID-19 のような伝染病発生時のジオクラスターを特定、などです。この記事では、PyCaretのgithubリポジトリにある「jewelry.csv」ファイルを使用しています。Power BI Desktop → データを取得 → From Webで、以下を打ち込みます。https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/jewellery.csv

さて、クラスタリングモデルを学習するために、Power Query EditorでPythonスクリプトを実行します。Power BIデスクトップの「データの変換」をクリックすると、PowerQuery Editorが起動。そこで「変換」をクリック、「Pythonで実行」をクリック。
※画像粗すぎの為、後で変更します、、、

PowerQuery Editor

Bower BIデスクトップ

Bower BIデスクトップ

さて、PyCaretを用いると、自動で特徴量エンジニアリングやってくれます。クラスタリングの場合は以下。ほんと短い。これをPythonスクリプトとして実行します。
f
rom pycaret.clustering import *
dataset = get_clusters(data = dataset)

しばらく待つと以下の画面が出る為、tableをクリック。

すると、、

新たに、clusterという行が自動的に追加されました。これを図にすると、

すごい。欠損値の入力、正規化、ワンホットエンコーディングなど、クラスタリングモデルを学習するために必要な前処理はすべて、クラスタリングを学習する前に自動的に実行されています。
デフォルトで、PyCaretは4つのクラスタを持つ K-Means クラスタリングモデルを学習するので、4つにグループ分けされています。PyCaretでは、すぐに使えるクラスタリングアルゴリズムが9種類用意されています。

何が起こったかわからないくらい簡単ですが、PyCaretすごいです。明日、別記事にします。

明日もラボ活。ラボ活のすゝめ。

 

 

 

 

 

 

 

この記事を書いた人
草場代表
エディター