>100 Views
February 10, 26
スライド概要
機械学習シリーズの第三弾は、教師なし学習の「クラスタリング」を体験します。これは、似た性質を持つデータを自動でグループ分けする手法で、顧客セグメンテーションや異常検知、データの傾向把握に活用されます。
1.環境構築と準備
分析にはGoogle ColabとPyCaretを使用します。
インストール: !pip install pycaret[full]でフルバージョンを導入。
注意点: インストール後、Colabのセッション再起動が必要です。バージョンが表示されれば準備完了です。
2.分析データの概要
教材には、顧客データ「jewellery」を使用します。
特徴量: 年齢、収入、支出スコア、貯蓄(額)の4項目が含まれます。
支出スコア: 購買金額や頻度をまとめた「顧客の積極性」を示す指標として扱います。
すべてのビジネスパーソンが意思決定プロセスにデータを活用する思考を身につけるため、まずは、データサイエンスの分析を体験していきましょう。SECIモデルの最初の段階、共同化(Socialization)からはじめていきます。 下記のブログで、ここにアップしたスライド、動画を随時、公開中です。 【ブログ】https://tutorial4datascience.blogspot.com/ 【Youtubeチャンネル】https://www.youtube.com/@DataScience_for_everyone 【Kindle】そして、このブログをまとめて書籍にしました! https://amzn.to/4ryVppn https://amzn.to/4pGgFb1
4th STEP 機械学習 Section 20 クラスタリング(1) 教材の用意&PyCaretのインストール/インポート データサイエンス チュートリアル 1
4th STEP 機械学習 Section 20 クラスタリング(1)教材の用意&PyCaretのインストール/インポート さて、ここからは、機械学習の第三弾として、教師なし学習のクラスタリ ングを体験していきます。 クラスタリングの主な目的は、下記のように似た性質を持つデータを自動 的にグループ分けすることです。 ● 顧客の年齢、収入、購買行動、支出などに基づいて、共通のニーズ を持つ顧客グループ(クラスター)を抽出し、グループごとに最適な マーケティング戦略を立てる際に活用 ●他のどのクラスターにも属さない、孤立したデータポイント(外れ値) を特定することで、不正取引や機械の異常などを発見 ●大量のデータの中から、主要なパターンや傾向を理解するための初期 分析として利用 今回もPyCaretの公式チュートリアルの一部を教材としていきます。 前世はデータサイエンティストだった 猫のタロー データサイエンス チュートリアル 2
4th STEP 機械学習 Section 20 クラスタリング(1)教材の用意&PyCaretのインストール/インポート PyCaretのホームページ (1) まずは、教材の準備をしていきます。 PyCaretのホームページhttps://pycaret.gitbook.io/docsの左側メニュー『Tutorials』をクリックします。 https://pycaret.gitbook.io/docs ※ 以前は、pycaret.orgがプロジェクトの概要やニュース、 docs.pycaret.org(GitBook)が詳細なマニュアルというように、 情報が分かれていました。 しかし、ユーザーが最も必要とする情報は「ドキュメンテーション(マ ニュアル)」であるため、プロジェクトのメインURL (https://pycaret.org /)から、その主要なリソース (https://pycaret.gitbook.io/docs/)へ直接誘導すること で、アクセスを一本化しているようです。 データサイエンス チュートリアル 3
4th STEP 機械学習 Section 20 クラスタリング(1)教材の用意&PyCaretのインストール/インポート PyCaretのホームページ (2) 『Tutorials』にある『Clustering』の前半の部分『Quick start』を今回の教材にします。 『Clustering』は、 の一種で、特徴が近い(似ている/距離が近い)データを集めて集団に分ける 分析手法です。日本語で、『クラスタリング』と言います。 クラスタリングは、次のような場合に使われます。 1.アンケート調査にて、化粧品利用の満足度や意向 化粧品に対する意識調査を実施した際、意識調 査の部分でグループ分けし、満足度を比較。 2.各ブランドを特性ごとの評価値によりグループ分けし 該当するブランド・グループの購入者特徴を調査 3.購買データで見える顧客の行動特性、例えば、「サ イトへのアクセス回数」「購買回数」「商品の価格 帯」などを分類の基準にして、クラスター化すること ができます。【例】「クラスター1:トライアル層」「クラ スター2:ヘルシー層」「クラスター3:スイーツ層」 「クラスター4:ギフト層」 データサイエンス チュートリアル 4
4th STEP 機械学習 Section 20 クラスタリング(1)教材の用意&PyCaretのインストール/インポート PyCaretのホームページ (3) 『Colab』をクリックすると、『Colab』の『Tutorial - Regression.ipynb』という名前のノートブックが現れます。この状態では、 まだGoogleドライブに保存されているわけではありませんので、『ドライブにコピー』をクリックします。 これで、教材の準備は完了です。 データサイエンス チュートリアル 5
4th STEP 機械学習 Section 20 クラスタリング(1)教材の用意&PyCaretのインストール/インポート PyCaretのインストール/インポート (1) この教材には、既にコードが書いてありますから、それを見ていきながら、何をやっているのか理解していきましょう! Colabには、PyCaretがインストールされていませんので、先ずはPyCaretをインストールしましょう。 その前に、『#56 分析環境再構築/コラボのPythonバージョンアップ』を参考にして、Pythonのダウングレードを行います。 また、通常の『!pip install paycaret』では、すべてのものをインストールすることはできません。 paycaretに続けて[full]を 書くとフルバージョンをインストールすることができます。 コードセルに『!pip install paycaret[full] 』とコードを書きます。 その後、実行します。 結構なパーツが含まれていますから、数分待つことになります・・・ データサイエンス チュートリアル 6
4th STEP 機械学習 Section 20 クラスタリング(1)教材の用意&PyCaretのインストール/インポート PyCaretのインストール/インポート (2) ColabでPyCaretをインポートすると、数分経過してから下記のように『セッションを再起動する』とのアラームが出てきます。 Colabは最新に近いパーツで動いていますが、PyCaretはその最新のパーツに対応していないためです。 でも、ご安心を! 『セッションを再起動する』をクリックして、再起動すれば、PyCaretは問題なく稼働します。 とは言え、2024年に入ってから3度のマイナー チェンジをしているので、PyCaretの進化が追 いつく努力は続けれらています。 Release情報 https://github.com/pycaret/pycaret/releases PyCaretは、非常に多くのパーツから成り立っ ているため、分析環境を構築するために多く の努力が必要とされます。これが、いまいち普 及が進まない原因です。解説本も少ない! 通常は、『python3 virtualenv』、『Anaconda』等を 使って、仮想環境を作ったり、コンテナーというアプリケーショ ンとその実行環境をまとめる技術を使います(ここでは割 愛します)。 データサイエンス チュートリアル 7
4th STEP 機械学習 Section 20 クラスタリング(1)教材の用意&PyCaretのインストール/インポート PyCaretのインストール/インポート (3) PyCaretをインポートが完了し、稼働しているかどうか確かめるために、PyCaretのバージョンを表示させましょう。 pycaret.__version__ アンダーバーを2個続けています。 PyCaretのバージョンは、3.3.2と表示されています。バージョンあが表示されていれば、ちゃんとインストールされている ことになります。 データサイエンス チュートリアル 8
4th STEP 機械学習 Section 20 クラスタリング(1)教材の用意&PyCaretのインストール/インポート 分析データを読み込む 次に分析するデータを読み込みます。 PyCaretには、年齢、収入、支出スコア、貯蓄(額)が含まれている『jewellery』というデータが入っています。それを呼び 出し、得られたデータを『data』と宣言しています。データの詳細は、次ページで解説します。 データサイエンス チュートリアル 9
4th STEP 機械学習 Section 20 クラスタリング(1)教材の用意&PyCaretのインストール/インポート データ『insurance』の詳細 このデータセットは、一般的に顧客セグメンテーションの例として使用されます。例えば、顧客を「年齢」「収入」「支出スコア」 「貯蓄」といった特性に基づいてグループ(クラスター)に分類する際に利用されます。 年齢 収入 *支出スコア 貯蓄 *支出スコア(SpendingScore):スコアの正確な 算出式は、この公開サンプルデータセットの提供元 (PyCaret)からは明示されていません。 しかし、一 般的に企業が顧客の「支出スコア」を算出する際は、 「購入金額の合計」、「購入頻度」、「購入頻度」、 「購入商品の多様性」を組み合わせて決定されます。 ここでは、「この顧客がどれだけ積極的に、頻繁に、多 くの金額を費やしているか」を簡潔に表す指標であると 理解して、分析を進めていきましょう。 データサイエンス チュートリアル 10