


サンプルデータをダウンロードしよう
当記事で利用するデータセットはこちらのサイトからダウンロードできます。
コードはこちらに掲載しています。
「Data Folder」をクリックし、次のページで「Online Retail.xlsx」をクリックすることで、データをダウンロードできます。

データを受け取ったら、まずは「何行何列か」を確認
データを受け取ったら、まず最初に確認することは「何行何列のデータか」です。このサンプルデータは23メガバイトと比較的小さいため、Excelなどの表計算ソフトで開けます。
▼表計算ソフトでサンプルデータを開いた様子
行数の確認をExcel上で実施する場合は、Ctrlキーを押しながら下矢印キーを押すと一番下の行まで移動できます(Macの場合はCmd+↓)。全部で541910行のデータであることがわかります。先頭行は列名なので、データ本体は 541909 行です。
列に注目すると、
- InvoiceNo:レシート番号
- StockCode:商品コード
- Description:商品説明
- Quantity:購入量
- InvoiceDate:購入日時
- UnitPrice:単価
- CustomerID:顧客 ID
- Country:国
と8列あります。
Pythonなどのプログラムによる自動化やExcel操作による手動操作のどちらであっても、データの加工はミスが非常に発生しやすい工程です。「行数と列数が意図した通りであるか」を確認すると防げるミスが多いので、データを受け取った直後に確認しておくことが重要です。

データ加工ライブラリ「pandas」を使ってみよう
Pythonでのデータ加工では、pandasが用いられることが多いです。
探索的な分析が要求される場合に役立つ機能がある一方で、大規模なデータセットに対してはパフォーマンスで課題が生じる場合もあります。利用している環境によって異なりますが、1GBを超えるようなデータセットを扱う場合は、スペックの高いコンピュータを用意、pandasの高速化テクニックを利用、データベース上でデータ加工を事前にする、NumPyという多次元配列を処理するためのライブラリ(pandasはNumPy を使って開発されている)などの対応が必要になるかもしれません。









ExcelでQuantityがマイナスのCustomerIDを特定して、その日の購買記録を確認してみましょう。

購入した量と同じだけマイナスの記録があることから、返品処理がされたと推測できます。


こちらの例では、10月末までにおけるRFM分析と11月に購買実績があるかを計算しています。RFM分析とは購買データを分析する際に利用される手法で、
・Frequency(頻度)
・Monetary(購入金額)
を集計して、顧客の動向を捉える方法です。集計結果からグループ分けすることで、優良顧客が全体の何割を占めるか、伸びしろのある顧客は何割いるかなどの分析に用います。
このプログラムでは、RFM分析の結果に加えて、11月に購買実績があるかどうかのデータ(is_visit)を付与しています。recency には 10月31日からカウントして何日前に購買記録があったか、frequencyには1日あたりの購入回数(10日に1回の買い物をしていたら、0.1になる)、monetaryはQuantity(購入量)\*UnitPrice(単価)の合計を計算しています。



次回の第6話では、集計結果をグラフにして可視化するPlotlyというライブラリを紹介します。お楽しみに。
第1話 機械学習の仕事内容って?実はコードを書くだけじゃない!
第2話 人工知能、機械学習、ディープラーニングの違いとは?
第3話 機械学習の活用事例!建設機械や回転寿司屋でも活用されている!?
第4話 機械学習したいのにデータがない!?
・Twitterアカウント
・Amazon著者ページ
・Twitterアカウント
わかばちゃんが登場する書籍いろいろ