# 時系列予測（基礎編）

## ✅ 概要

このチュートリアルでは，時系列データの分析と予測の基礎を学びます．
Pythonの主要なライブラリである`pandas`，`matplotlib`，`scikit-learn`を用いて，データの読み込み，加工，可視化から，機械学習モデルを用いた予測までの一連のプロセスを実践的に学習します．

## 📚 学習目標

- `pandas`を用いた時系列データの操作（`datetime`型の扱い，リサンプリングなど）に習熟する
- `matplotlib`や`seaborn`を用いて，時系列データを効果的に可視化し，データの傾向を読み解く能力を養う
- 時系列データを機械学習モデルで扱うための前処理（特徴量エンジニアリング）を理解する
- `scikit-learn`を用いて予測モデルを構築し，その精度を評価する手法を習得する

## 📁 ディレクトリ構成

```
part3_timeseries/
├── intro.md                    # この概要ページ
├── data/                       # データセット格納ディレクトリ
│   ├── raw/
│   │   └── cafe_customers.csv  # カフェ顧客数データ
│   └── processed/              # 前処理済みデータ
└── notebooks/                  # 学習用Jupyter Notebook
    ├── 01_pandas_basics.ipynb
    ├── 02_visualization_basics.ipynb
    ├── 03_time_series_features.ipynb
    └── 04_prediction_model.ipynb
```

## 📊 データセット

本チュートリアルでは，以下のデータセットを使用します：

**`cafe_customers.csv`**: 30分ごとのカフェの顧客数記録
- `Timestamp`: タイムスタンプ（yyyy-mm-dd HH:MM:SS形式）
- `Customers`: 顧客数(人)

## 🚀 学習の進め方

`notebooks`ディレクトリ内のJupyter Notebookを以下の順序で実行し，内容を理解しながら進めてください．
各Notebookには，解説と演習問題が含まれています．

### Step 1: Pandasの基礎

`pandas`の基本操作，CSVファイルの読み込み，データフレームの操作方法を学びます．
特に，時系列データを扱う上で不可欠な`datetime`型への変換と，それを用いたデータの抽出，集計方法を重点的に扱います．

### Step 2: データ可視化の基礎

`matplotlib`と`seaborn`ライブラリを用いて，データを可視化する基本的な方法を学びます．
折れ線グラフによる時系列推移の可視化や，ヒストグラム，散布図を用いたデータ分布の確認方法を習得します．

### Step 3: 特徴量エンジニアリング

時系列予測モデルの精度を高めるための「特徴量エンジニアリング」を学びます．
日付データから曜日や月といった情報を抽出する方法や，過去のデータを説明変数として利用するラグ特徴量，移動平均特徴量の作成方法を実践します．

### Step 4: 予測モデルの構築

これまで学んだ知識を総動員し，時系列予測モデルを構築します．
データを訓練用とテスト用に分割し，`scikit-learn`ライブラリの線形回帰モデルや決定木ベースのモデル（`RandomForestRegressor`など）を用いて未来の値を予測します．
最後に，RMSE（Root Mean Squared Error）などの評価指標を用いてモデルの精度を評価します．

## 💻 使用技術

- **Python**: プログラミング言語
- **pandas**: データ操作・分析ライブラリ
- **NumPy**: 数値計算ライブラリ
- **matplotlib / seaborn**: データ可視化ライブラリ
- **scikit-learn**: 機械学習ライブラリ

## 📝 実行環境

Jupyter Notebookを使用して実習を行います．各セルのコードを順次実行し，結果を確認しながら学習を進めてください．