データから洞察へ — FMDによるクラスタリング
概要
このリポジトリは「From-Data-to-Insight-Clustering」と題された顧客セグメンテーションのハンズオンプロジェクトです。分析対象はOnline Retail 2010データセット(約30,000行)で、各顧客をFrequency(購入頻度=請求書数)、Monetary(合計購買金額=Quantity×UnitPriceの合計)、Diversity(購入したユニーク商品数)のFMD三指標で集約します。KMeansとDBSCANという対照的なクラスタリング手法を適用し、Silhouette ScoreやDavies-Bouldin Indexで評価、可視化とPDFレポートで結果の解釈を示します。データクリーニングから特徴量設計、スケーリング、クラスタ評価まで一貫したワークフローを提供し、実務や学習向けに分かりやすく構成されています。
リポジトリの統計情報
- スター数: 1
- フォーク数: 0
- ウォッチャー数: 1
- コミット数: 3
- ファイル数: 5
- メインの言語: Jupyter Notebook
主な特徴
- FMD(Frequency, Monetary, Diversity)によるシンプルで解釈性の高い顧客特徴量設計
- KMeans(パーティショニング)とDBSCAN(密度ベース)の比較分析
- Silhouette Score・Davies-Bouldin Indexを用いたクラスタ評価
- NotebookとPDFレポートで手順・可視化・結論を再現可能に提供
技術的なポイント
本プロジェクトの技術的な中核は「FMDによる集約」と「クラスタリング手法の比較」にあります。データ前処理では、欠損値やキャンセル(Invoiceにマイナス金額が含まれる場合など)の扱い、CustomerIDでの集約を丁寧に行うことが重要です。各顧客ごとに
- Frequency:その顧客の請求書数(購買回数の代理指標)
- Monetary:Quantity×UnitPriceの合計(生涯購買金額や分析期間内の総額)
- Diversity:その顧客が購入したユニークなStockCode数 を算出し、外れ値の確認や対数変換、標準化(StandardScalerやRobustScaler)を行ってからクラスタリングに渡します。
KMeansはクラスタ数kの選定が鍵で、Elbow法やSilhouetteスコアを参照して適切なkを決定します。各クラスタの重心(センチロイド)を解釈することで「高頻度・高金額・低多様性のコア顧客」「低頻度・低金額だが多様な商品を買う顧客」など実務的なセグメント定義が可能です。一方、DBSCANは密度ベースでノイズ点(外れ値)を自動識別できるため、非球状クラスタや異常顧客の抽出に強みがあります。DBSCANではepsilon(近傍距離)とmin_samplesのチューニングが結果に大きく影響するため、kNN距離プロット等でEpsを決める工程が推奨されます。
評価指標としてSilhouette Scoreはクラスタの凝集度と分離度を直感的に示し、Davies-Bouldin Indexはクラスタ間の平均的な分離性を表します。これらを併用することで、単一の指標に依存しない堅牢な評価が可能です。可視化は2〜3次元に主成分分析(PCA)やt-SNEで射影して散布図を描き、各クラスタの分布や重心を視認化します。最終的にNotebookで手順を再現でき、PDFレポートで結果要約とビジネス向けインサイト(ターゲティング策、キャンペーン優先度、離脱リスクの仮説など)を提示しています。
注意点として、Online Retailデータは特定地域や期間に偏る可能性があり、外部データ(属性情報やチャネル情報)がないと解釈に限界が出ます。また、パラメータ感度や特徴量設計次第でクラスタ構造が大きく変わるため、本成果は探索的分析として扱い、必要に応じてA/B検証や時間軸での追跡調査を行うことが望ましいです。
プロジェクトの構成
主要なファイルとディレクトリ:
- Customer Segmentation FMD Based with Kmeans and DBSCAN.pdf: file
- Portofolio Clustering FMD.pdf: file
- Portofolio_Clustering_FMD.ipynb: file
- README.md: file
- online retail 2010 30k.csv: file
まとめ
FMDを軸にした実務寄りの顧客セグメンテーション事例で、KMeansとDBSCANの使い分けや評価指標の実践的運用が学べます。(約50字)
リポジトリ情報:
- 名前: From-Data-to-Insight-Clustering
- 説明: Proyek ini menganalisis segmentasi pelanggan pada dataset Online Retail 2010 menggunakan pendekatan FMD (Frequency, Monetary, Diversity). Dua algoritma klasterisasi digunakan: KMeans dan DBSCAN, dengan evaluasi berbasis Silhouette Score dan Davies-Bouldin Index.
- スター数: 1
- 言語: Jupyter Notebook
- URL: https://github.com/akbarcicada/From-Data-to-Insight-Clustering
- オーナー: akbarcicada
- アバター: https://avatars.githubusercontent.com/u/165131577?v=4
READMEの抜粋:
From-Data-to-Insight-Clustering
Customer Segmentation with FMD using KMeans & DBSCAN
📌 Project Overview
This project explores customer segmentation using the Online Retail 2010 dataset (~30,000 rows).
Segmentation is based on FMD dimensions:
- Frequency → how often a customer purchases (number of invoices)
- Monetary → total transaction value (Quantity × Price)
- Diversity → number of unique products purchased
We applied KMeans and DBSCAN clust…