概要
書籍を参考にスポーツジムにおける顧客の利用回数予測および退会予測分析を実施した学習プロジェクト。
教材には『Python 実践データ分析 100本ノック 第2版』を使用。
実務データ(欠損値・型揺れ・日付処理・外れ値など)を扱いながら、データ前処理から特徴量評価、モデル構築・スコア化までの一連の分析フローを体系的に習得。
1. データ前処理
欠損値・型揺れ・外れ値への対応、データ整形
2. 特徴量評価
特徴量設計と評価
3. モデル構築
回帰・分類モデルの実装
4. スコア化
モデルの評価とスコア化
分析アプローチ
教材の手順をベースにしつつ、「モデル構築よりも、モデルが扱えるデータを作る工程」を重視。
実務を想定し、以下の点に重点を置いた
- データの欠損・表記揺れへの対応
- 時系列データの集計・加工
- 特徴量設計の妥当性検討
前処理・特徴量設計の考え方に重点を置き、実務で求められるデータ分析プロセスに近い経験を蓄積。
実施内容
1. データ前処理
実務に近いデータを扱うため、以下の前処理を実施
- 欠損値の確認および補完処理
- データ型の統一(例:文字列 → datetime型)
- 外れ値の確認・除外
- 全角・半角、余分なスペースの除去によるデータ整形
- 利用履歴を月単位に集計
- pandas による抽出・フィルタ処理
- ダミー変数の作成
- CSV 形式でのデータ出力
concat/mergeによるテーブル結合- matplotlib による簡易的な可視化
- クラスタリングによる会員グループ化
2. 特徴量評価
予測精度向上を意識し、以下の指標を加工・生成し、特徴量として評価
- 月ごとの利用回数
- 最終来店日からの経過日数
- 利用曜日の傾向(平日型・週末型)
- 入会からの経過月数
- 過去数ヶ月の利用回数推移(時系列特徴量化)
実務において重要となる「ドメイン知識 × 集計ロジック」の考え方を学ぶ題材となった。
3. 予測モデル構築
以下の2タスクを想定してモデルを構築
- 翌月の利用回数予測(回帰)
- 翌月の退会予測(分類)
scikit-learn を用いて以下を実装
- train / test split によるデータ分割
- 線形回帰モデル(LinearRegression)
- 決定木モデル(DecisionTreeClassfier)
評価指標としてR² スコアを用い、モデル間での精度比較を実施。
成果
技術的成果
- 欠損・型揺れ・外れ値など実務データ特有の課題への前処理ノウハウ獲得
- 線形回帰および決定木モデルを用いた翌月利用・退会予測モデルの完成
- scikit-learn を活用したデータ分割・学習・予測・評価の標準パイプライン構築
分析スキル
- シンプルなモデルによる基準精度(ベースライン)策定と改善プロセスの定型化
- 時系列データに対する集計・移動窓等による特徴量化の実践スキルの習得
学び
-
前処理の重要性
- データ分析プロジェクトにおいて全体の8割以上の工数を要する前処理プロセスの本質的理解
- ドメイン知識に基づいた適切な特徴量設計がモデル精度を決定づけることの実証
-
実務への応用可能性
- ノイズを含む実務データへの柔軟なアプローチと前処理ロジックの設計思想
- ビジネス課題(顧客離脱防止・利用頻度向上)に対する機械学習の適用プロセスの習得