Python

【Signate チュートリアル】グラフの日本語対応化〜お弁当の需要予測〜

グラフを日本語する準備

pip install japanize-matplotlib
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
import seaborn as sns
sns.set(font="IPAexGothic") #日本語フォント設定

データの大枠を確認

train = pd.read_csv("./train.csv")
test = pd.read_csv("./test.csv")
sample = pd.read_csv("./sample.csv",header=None)
print("Data Shapes")
print("Train:",train.shape, "Test:",test.shape, "Sample:",sample.shape)
Data Shapes
Train: (207, 12) Test: (40, 11) Sample: (40, 2)

データの詳細を確認

train.index = pd.to_datetime(train["datetime"])
train.head()
train.describe()
train.describe(include="O")

↓結果はこちら

データをグラフ化して確認(売り上げ分布)

train["payday"] = train["payday"].fillna(0)
train["precipitation"] = train["precipitation"].apply(lambda x : -1 if x == "--" else float(x))
train["event"] = train["event"].fillna("なし")
train["remarks"] = train["remarks"].fillna("なし")
train["month"] = train["datetime"].apply(lambda x : int(x.split("-")[1]))
train["y"].plot(figsize=(15,4))

・右肩下がりなことがわかる

・所々にスパイクが見られるため、このタイミングで強く影響する因子があると考えられる

目的変数と説明変数との散布図を確認

fig, ax = plt.subplots(2,3,figsize=(9,6))
train.plot.scatter(x="soldout", y="y", ax=ax[0][0])
train.plot.scatter(x="kcal", y="y", ax=ax[0][1])
train.plot.scatter(x="precipitation", y="y", ax=ax[0][2])
train.plot.scatter(x="payday", y="y", ax=ax[1][0])
train.plot.scatter(x="temperature", y="y", ax=ax[1][1])
train.plot.scatter(x="month", y="y", ax=ax[1][2])
plt.tight_layout()

※月と気温はyと相関が高そう。

しかし、日数が経過するにつれてyが減少していることから代替変数である可能性が高い

目的変数と説明変数の箱ひげ図を確認

fig, ax = plt.subplots(2,2,figsize=(12,7))
sns.boxplot(x="week",y="y",data=train,ax=ax[0][0])
sns.boxplot(x="weather",y="y",data=train,ax=ax[0][
    1])
sns.boxplot(x="remarks",y="y",data=train,ax=ax[1][0])
ax[1][0].set_xticklabels(ax[1][0].get_xticklabels(),rotation=30)
sns.boxplot(x="event",y="y",data=train,ax=ax[1][1])
plt.tight_layout()

・天気が快晴の時にyが大きくなる

・お楽しみメニューの時にyが大きくなる

【メモ(やったこと)】

下記URLからipaexg.ttfファイルをインストールする

https://ipafont.ipa.go.jp/node193#jp

Mickey@コーヒー好きエンジニア

【製造業×プログラミング×AI】Python/VBAを活用した業務改善、Streamlit/Plotlyを活用したWebアプリ開発について初心者向けに発信中|趣味は自家焙煎コーヒー作り|noteでは焙煎理論を発信|ココナラではプログラミングに関する相談,就職/転職やコーヒーに関する相談などのサービスをやっています