マーケターのためのクラスタリング入門

前回、前々回と回帰モデルについて説明してきました。これらは教師あり学習でしたが、今回説明するクラスタリングは教師なし学習に分類されます。マーケティングの現場では回帰モデルと並んで使用される手法です。

クラスタリング概要

分類

クラスタリングは与えられたデータ間の距離を元に類似したもの同士を同じグループ(クラスタ)に分ける手法です。データ間の距離を使用するため教師ラベルが不要、つまり教師なし学習に分類されます。元のデータは数的変数であることが望ましいですが、カテゴリ変数を持つデータに対しても適用できる手法があります。

マーケティングにおけるクラスタリング活用例

顧客をあるグループに分ける、商品をあるグループに分けるなどの活用例が挙げられる。

有用性と弱点

有用性
  • 説明しやすさ。顧客ペルソナなどを分かりやすい言葉や表にして説明できる。
  • 解釈に数理的な困難がないため、分析者の技量によるところが少なく誰でも利用できる。
  • 多様なプラットフォームで実行可能。R/Python/SAS/SPSSいずれでも実行できる。
  • 教師データが不要である。
弱点
  • 予測値を出してくれるわけではないため、予測モデルとして使用できない。
  • 分布が極端な変数(例えばほぼ0の値しかとらない変数)が多いと一部のクラスタ間の件数分布に偏りができる。
  • クラスタを用いて何をするかの要件を明確に詰めていないと、それを活かすことができない。

一般論

手法一覧

データの型や、階層の有無により以下の代表的な手法に分けられます。

* カテゴリ型をダミー変数に変換すれば実行可能です。一方で0/1の分布(2項分布)となるので、k-means法ではクラスタ件数分布が偏りやすい。

手法選択フロー

実務的には前頁図表の上2つ、「k-measn法」「k-mode法」を用いる事が多いため、本稿でもこの2つに絞って話を進めます。

分析手順

使用する手法が決まったら、以下の手順でクラスタリングを実行していきます。回帰モデルと比較すると、工程数が少なく、また統計的検定が不要であるため理解しやすいと思います。

実習1 k-means法クラスタリング

実習用のpgmは以下のリンクからDLしてください。 https://github.com/mitsu666/Lecture2021/blob/main/Lecture08_Clustering.ipynb

データ準備

実験対象データは(毎度おなじみの)sklearnに付属しているbostonというボストンの住宅価格のデータセットを使用します。各カラム名は以下の通りです。カラム名は@markit様の記事から引用しています。
CRIM: 町別の「犯罪率」 ZN: 25,000平方フィートを超える区画に分類される住宅地の割合=「広い家の割合」 INDUS: 町別の「非小売業の割合」 CHAS: チャールズ川のダミー変数(区画が川に接している場合は1、そうでない場合は0)=「川の隣か」 NOX: 「NOx濃度(0.1ppm単位)」=一酸化窒素濃度(parts per 10 million単位)。この項目を目的変数とする場合もある RM: 1戸当たりの「平均部屋数」 AGE: 1940年より前に建てられた持ち家の割合=「古い家の割合」 DIS: 5つあるボストン雇用センターまでの加重距離=「主要施設への距離」 RAD: 「主要高速道路へのアクセス性」の指数 TAX: 10,000ドル当たりの「固定資産税率」 PTRATIO: 町別の「生徒と先生の比率」 B: 「1000(Bk – 0.63)」の二乗値。Bk=「町ごとの黒人の割合」を指す LSTAT: 「低所得者人口の割合」 MEDV:「住宅価格」(1000ドル単位)の中央値。通常はこの数値が目的変数として使われる

(参考 必要なライブラリを読み込む)

kmodes法はあとで使用しますが、google coloboratory標準でインストールされていないため、あらかじめインストールしておきます。

データ確認

全てfloating(浮動小数点)型、つまり数値型です。また欠損はありません。

クラスタリング

わずか数行のコードを実行するだけで、クラスターを作成できます。

11件のクラスタができてしまったため、k=5からk=4にして再度やり直します。

クラスターの特徴を解釈する 記述統計法

4つのクラスターはどのような特徴を持つでしょうか。これらを理解することはマーケティングにおいて重要です。時間をかけるべきはクラスタリングモデルの作成ではなく、この特徴を見出す作業であるといっても過言ではありません。記述統計法は記述統計量(頻度分布や、平均値)を元に人が目で判断しクラスタを特徴づける方法です。

明らかにクラスタごとに変数の分布が異なることが分かります。

各クラスタ、変数ごとの平均値を算出します。ヒートマップを作成すると分かりやすいと思います。

まとめると以下のような感じでしょうか。

実習2 k-modes法クラスタリング

データ準備

実験対象データは、UCI Machine Learning Repositoryより取得したCensus Income データセット「Adult Data Set」を使用します。このデータセットには以下の変数が含まれています。引用元はこちらです。
age:年齢 workclass:雇用形態 fnlwgt:回答者への重み(メタデータ) education:学歴 education-num:教育年数 marital-status:未婚・既婚ステータス occupation:職業 relationship:続柄 race:人種 sex:性別 capital-gain:資本獲得 capital-loss:資本金の減少 hours-per-week:週あたりの労働時間 native-country:生まれた国

データ確認

一部整数型(integer)、その他は文字列型(string)です。今回はk-mode法の実習ですので、string型変数のみを抽出します。

クラスタリング

K-means法とほぼ同じやり方でクラスタリングを実行します。

特徴を可視化する

数値変数ではなくカテゴリ変数を対象としているため、積上げ構成比を用いました。

クラスターの特徴を解釈する 記述統計法

同じようにまとめてみました。

以上です。大変便利な手法なので、ぜひマーケティング実務で使って頂ければと思います。

Author Profile

株式会社Crosstab 代表取締役 漆畑充
株式会社Crosstab 代表取締役 漆畑充
2007年より金融機関向けデータ分析業務に従事。与信及びカードローンのマーケテイングに関する数理モデルを作成。その後大手ネット広告会社にてアドテクノロジーに関するデータ解析を行う。またクライアントに対してデータ分析支援及び提言/コンサルティング業務を行う。統計モデルの作成及び特にビジネスアウトプットを重視した分析が得意領域である。統計検定1級。
技術・研究のこと:qiita
その他の個人的興味:note


お問い合わせは株式会社Crosstabまでお願いいたします
2007年より金融機関向けデータ分析業務に従事。与信及びカードローンのマーケテイングに関する数理モデルを作成。その後大手ネット広告会社にてアドテクノロジーに関するデータ解析を行う。またクライアントに対してデータ分析支援及び提言/コンサルティング業務を行う。統計モデルの作成及び特にビジネスアウトプットを重視した分析が得意領域である。統計検定1級。 技術・研究のこと:qiita その他の個人的興味:note お問い合わせは株式会社Crosstabまでお願いいたします
PHP Code Snippets Powered By : XYZScripts.com