Microsoft Fabricを使用して機械学習とレポート作成をやってみた(前編)

Microsoftが提供しているSaaS型のサービスであるMicrosoft Fabricを使用して、機械学習を用いた予測レポートを作成してみたいと思います。

以下のMicrosoft Learnの記事を参考に作業していきます。

データ サイエンス チュートリアル - 概要 - Microsoft Fabric | Microsoft Learn

なお、本記事の作業ではMicrosoft Fabricの試用版を使用しています。

作業全体の概要

Microsoft Learnのチュートリアルで用意されているノートブックを使用して、以下の内容を実施していきます。

  1. 事前準備
  2. データの取得
  3. データの加工(クレンジング)と保存
  4. 機械学習モデルのトレーニングと登録
  5. 予測データの作成
  6. 予測データの視覚化(レポート作成)

公開されているテストデータ(銀行の顧客データ)をもとに機械学習モデルを使用して顧客の解約状況を予測を立てる、というのが目的となっています。

この前編記事では、事前準備からデータの加工(クレンジング)と保存までを行います。

事前準備

ノートブックファイルのダウンロード

以下のリンクから、チュートリアルで使用する4つのファイルをダウンロードします。

https://github.com/microsoft/fabric-samples/tree/main/docs-samples/data-science/data-science-tutorial

  • 1-ingest-data.ipynb
  • 2-explore-cleanse-data.ipynb
  • 3-train-evaluate.ipynb
  • 4-predict.ipynb

レイクハウスの作成

Microsoft Fabricにアクセスします。

左下のアイコンからData Engineeringを選択し、Data Engineeringのホーム画面に移動します。

レイクハウスを選択し、チュートリアルで使用するレイクハウスを作成します。

本記事ではTestという名前でレイクハウスを作成します。

ノートブックファイルのインポート

左下のアイコンからData Scienceを選択し、Data Scienceのホーム画面に移動します。

ノートブックのインポートを選択し、前の手順でダウンロードした4つのファイルをアップロードします。

インポート完了後にマイワークスペースに移動すると、インポートされたノートブックファイルが確認できます。

マイワークスペースから、ノートブックのファイル名の箇所をクリックしてノートブックを開きます。

「追加」を選択して、先ほど作成したレイクハウスを選択します。

完了すると、レイクハウスの枠に、追加したレイクハウスが表示されます。

※ 4つのノートブック全てで同じ作業を行い、同じレイクハウスを追加する必要があります。
※ レイクハウスを追加していなかった場合、ノートブックの実行でエラーになります。

データのインポート

作業内容

まず最初に、チュートリアルで使用するテストデータを取得するノートブックを実行します。

マイワークスペースから1-ingest-data.ipynbを選択します。

このノートブックでは、公開されているデータをダウンロードし、指定されたレイクハウスの所定の場所にアップロードする、といったことが行われます。

「すべて実行」を選択します。

処理の結果はノートブック内で確認できます。

成功したら、マイワークスペースからレイクハウスを選択すると、ノートブックによりダウンロードされたCSVファイルが確認できます。

成功したのにファイルが表示されない場合は、左上の再読み込みボタンをクリックしてみてください。

データの内容について

ダウンロードされたファイルの中は、以下のようになっています。

各列の意味は以下のようになっています。

RowNumber 行番号
CustomerId 顧客ID
Surname 顧客の姓
CreditScore クレジット スコア
Geography 居住国(ドイツ、フランス、スペインのみ)
Gender 性別
Age 年齢
Tenure 顧客年数
Balance 口座残高
NumOfProducts 購入した商品数
HasCrCard クレジットカード有無
IsActiveMember アクティブな顧客か否か
EstimatedSalary 推定年収
Exited 解約済みか否か(1が解約済み、0は未解約)

Exitedが顧客の解約状況を示しています。

どの列がExitedに影響を与える可能性があるのかを理解する必要があります。

CreditScoreやGeographyなど影響を与える可能性がある列が含まれている一方で、RowNumber、CustomerId、SurnameはExitedに影響を与えることはないでしょう。

データの加工(クレンジング)と保存

作業内容

マイワークスペースから2-explore-cleanse-data.ipynbを選択します。

このノートブックでは以下のようなことが行われます。

  • CSVファイルの読み込みPandaデータフレームを作成
  • データのクレンジング(重複行および欠損データを含む行の削除、不要列の削除)
  • データの調査
  • データをテーブルとして出力

「すべて実行」を選択します。

最後のコードまで完了したら、レイクハウス内でノートブックにより作成された1つのテーブル(df_clean)が確認できます。

データの調査結果の確認

2-explore-cleanse-data.ipynbの中で行われた、データの調査結果を確認します。

マイワークスペースを開いて、再び2-explore-cleanse-data.ipynbを選択します。

先ほど実行した結果が引き続き表示されているので、右の枠を後半部分までスクロールします。

この後半部分では、クレンジング後のデータの調査を行い、結果を表出力しています。

これらの表から、Spainの解約者数が少ないことや20代後半から40代後半の顧客が多いなど、現在の状況が読み取れます。

  • 数値型の5つの列(クレジットスコア、年齢、顧客年数、口座残高、推定年収)の最小値、最初の四分位数、中央値、第 3 四分位数、最大値
  • 解約した顧客と解約していない顧客の分布
  • 数値型の5つの列(クレジットスコア、年齢、顧客年数、口座残高、推定年収)の分布状況

まとめ

今回の記事では、チュートリアル用に用意されたノートブックを使用して、データの取り込みからクレンジングされたデータを用いたテーブルの作成までを実施しました。

次回の後編では、作成されたテーブルを使用しての機械学習と、機械学習により作成されたデータを使用してのレポート作成を行いたいと思います。

執筆担当者プロフィール
白谷 恭一

白谷 恭一(日本ビジネスシステムズ株式会社)

2010年中途入社。得意な技術領域はLinux/Hadoopで、現在はデータ分析基盤の運用を担当。趣味はゲーム、温泉巡り。

担当記事一覧