2023年12月27日水曜日

Bakery Sales Dataset : (1) 基本分析

 Bakery Sales Dataset (https://www.kaggle.com/datasets/akashdeepkuila/bakery)を使って基本分析をしていきます。このデータセットは、「The Bread Basket」というエディンバラにあるベーカリーのオンライン注文取引の詳細を提供しています。2011年1月26日から2003年12月27日までの期間にわたり、20507件のエントリー、9000回以上の取引、4つの列を含んでいます。今回はこのデータセットの基本分析を行なっていきます。データはkaggleのアカウントでログインしてダウンロードしてください。分析環境はGoogle Colaboratoryを使っていきいます。またコードはchatGPTにて生成したものを活用しています。今回は基本分析をしていきますが、流れとしては

(1) データの取り込みと基本統計量の算出

(2) グラフ描画によるデータ特徴把握と相関係数行列によるデータの関係性の把握

(3) 主成分分析による特徴の絞り込みとクラスタリング

の順にやっていきます。ここまでやることで、データが持つ基本的な特徴は掴めると思います。

(1) データの取り込みと基本統計量の算出

csvを取り込んで表示すると、次のようなItems、DateTime、Daypart、DayTypeの項目があり、商品が売られた状況が記録されています。TransactionNOは取引番号(一度での取引、全部で9,465取引)、Itemsは商品名(94種類)、DaypartはMorning, Afternoon, Evening, Nightの4つ、DayTypeはWeekendとWeekdayの2つです。



このデータを以下の方針で集計していきます。
・日毎のトランザクション数
・日毎の販売個数
・DayType (weedday -> 0, weekend -> 1)
・Daypartのそれぞれの販売個数/日(Morning, afternoon, evening, nightそれぞれの販売個数)
・それぞれのItemでの販売個数/日
159日分の集約されたデータがデータフレームとして算出されました。基本統計量を出していきます。これを見ると、1日あたりの注文数は59.5件、1日あたりの販売個数は約129個となっています。

(2) グラフ描画によるデータ特徴把握と相関係数行列によるデータの関係性の把握
グラフを書いて、データの特性を確認していきます。データの特性をグラフから確認してください。
・販売個数と注文数のヒストグラム
販売個数と注文数は同じような分布に見えるので、一つの注文に対して、2個程度が平均的に販売されているようです。
・DaypartとDayTypeの出現回数

Daypartでは、AfternoonとMorningの出現回数が多いです。
・Daypartごとの販売個数の分布
MorningとAfternoonの販売個数が多く、Evening, Nightはかなり少ないです。
・DayTypeでの販売個数の分布
Weekendの方が売れている日が多そうです。
・販売個数の時系列変化(Weekendは×印)
・商品の販売個数ランキングと累積販売個数が80%を超える上位商品
左の上位数商品が全体の販売個数の80%を占めていることがわかります。パレートの法則で、商品の20%が販売個数の80%を占めているということです。
・Daypartでの販売個数/日と総販売個数/日の相関係数行列
MorningとAfternoonでの販売個数が総販売個数と関係が高いことがわかります。
・販売個数の上位20%(累積販売個数の20%)の商品の販売個数/日と総販売個数/日の相関係数行列を作成
CoffeeとBreadとの関係性、総販売個数の関係性が高いことがわかります。

(3) 主成分分析による特徴の絞り込みとクラスタリング
次に主成分分析を行います。今回は商品数が多いので、販売個数の多いものから並べ替えをして、累積販売個数が全体の販売個数の80%を超えるまでの商品で実施します。今回選ばれたのは、'Coffee', 'Bread', 'Tea', 'Cake', 'Pastry', 'Sandwich', 'Medialuna', 'Hot chocolate', 'Cookies', 'Brownie', 'Farm House', 'Muffin', 'Alfajores' の13商品です。
これに1日の販売数を加えた14要素で主成分分析を行います。
(課題) このbiplotのそれぞれの点が日付を表しているが、平日と休日を区別して表示しなさい。

次に、それぞれの主成分がどの商品に影響を受けているかをヒストグラムで可視化します。



以下省略。主成分の名前をつけるのですが、今回はGPTでの出力を載せておきます。
  1. PC0 - "総合的な販売トレンド": この主成分は、ほとんどの商品(特に「Coffee」や「Total_Daily_Sales」)に高い荷重を持っており、全体的な販売トレンドや人気商品の影響を捉えている可能性があります。

  2. PC1 - "スナック類の傾向": この成分は、「Cake」や「Cookies」などのスナック類に負の荷重を持ち、これらの商品の販売パターンを反映している可能性があります。

  3. PC2 - "朝食・軽食アイテムの影響": 「Brownie」、「Medialuna」、「Hot chocolate」などの朝食や軽食向け商品に高い荷重を持っていることから、これらの商品群の販売動向を示している可能性があります。

  4. PC3 - "特定アイテムの特異性": 特定の商品(例えば「Farm House」や「Sandwich」)に高い荷重を持つことから、これらの商品の特異な販売傾向を捉えている可能性があります。

  5. PC4 - "パン類の影響": 「Bread」に正の荷重を、「Pastry」や「Sandwich」に負の荷重を持っていることから、パン類の販売動向とその他の商品群との関連性を示しているかもしれません。

主成分分析の結果を用いて、クラスタリングをしていきます。今回は4つのクラスタに分類します。
(課題) この分類されたクラスタに特徴とともに名前をつけましょう。
ここまでの基本分析をやることで、データの特徴を捉えることができます。

0 件のコメント:

コメントを投稿