【G検定まとめ】要点整理&当日用カンペの項目別詳解ページです。

詳細な知識や実装は試験には必ずしも必須ではありませんが、試験対策として理解を深めたい方はぜひ最後までご覧ください。

G検定まとめはこちら

k-means法

クラスタの平均を用いて、与えられたクラスタ数をk個に分類する。k個のkは自分で設定する。k-means法を用いた分析のことをクラスタ分析という。

k-means法

k-means 法は、データのクラスタリングに使用される一般的な教師なし機械学習アルゴリズムです。これは、一連のデータ ポイントがあり、それらを類似性に基づいてクラスターにグループ化する場合に使用されます。

k-means アルゴリズムは、最初に作成するクラスターの数 “k” を選択することによって機能します。次に、各データ ポイントを k 個のクラスターの 1 つにランダムに割り当てます。

次に、各クラスターの重心 (クラスター内のすべてのポイントの平均位置) を計算し、各データ ポイントを最も近い重心に再割り当てすることで、クラスターの割り当てを繰り返し改善します。このプロセスは、割り当てが変更されなくなるか、反復の最大数に達するまで繰り返されます。

アルゴリズムが収束すると、データ ポイントの k クラスターが得られます。ここで、各クラスターはその重心によって表されます。これらのクラスターは、その後の分析や視覚化に使用できます。

k-means メソッドは最初のランダムな割り当てに敏感である可能性があるため、結果のクラスターが安定しており、初期条件に大きく依存していないことを確認するために、さまざまな初期割り当てで複数回実行されることが多いことに注意してください。

k-means法の活用事例

年齢、収入、買い物の習慣など、小売店の顧客に関する情報を含むデータセットがあるとします。顧客の購買行動に基づいて顧客をクラスターにグループ化し、マーケティング キャンペーンをより効果的にターゲティングできるようにしたいと考えています。

k-means を使用してこのデータをクラスター化するには、まず、作成するクラスターの数 (k) を決定する必要があります。簡単にするために、3 つのクラスターを作成するとします。

次に、各顧客を 3 つのクラスターのいずれかにランダムに割り当てます。次に、各クラスター内のデータ ポイントの平均を見つけることによって、各クラスターの重心 (平均値) を計算します。

次に、クラスターが安定するまで、次の手順を繰り返します。

  1. 顧客ごとに、どのセントロイドに最も近いかを計算します。
  2. 重心が最も近いクラスターに各顧客を再割り当てします。
  3. 新しい割り当てに基づいて、各クラスターの重心を再計算します。

最終的にクラスターは安定し、同様の購買行動を持つ顧客のグループができます。次に、これらのクラスターを使用して、各グループの関心とニーズに合わせたターゲットを絞ったマーケティング キャンペーンを作成できます

k-means法のメリット

  1. シンプルさ: k-means 法は実装が比較的簡単で理解しやすいため、機械学習の初心者に人気があります。
  2. スケーラビリティ: k 平均法はスケーラビリティが高く、多数のデータ ポイントを処理できます。
  3. 速度: k 平均法は高速で効率的であるため、大規模なデータセットに最適です。
  4. 柔軟性: k-means 法は、画像セグメンテーション、テキスト分析、顧客セグメンテーションなど、幅広いアプリケーションに使用できます。
  5. 解釈が容易: k-means 法では、各クラスターが視覚化しやすい重心で表されるため、解釈が容易なクラスターが生成されます。
  6. 予備知識は不要: k-means 法は、データの予備知識を必要としないため、探索的データ分析に役立ちます。
  7. さまざまな種類のデータを処理できる: k-means メソッドは、連続データとカテゴリ データの両方を処理できるため、用途の広いクラスタリング アルゴリズムになります。
  8. ノイズを処理できる: k 平均法はノイズに対して堅牢であり、クラスタリングの結果に影響を与えることなく外れ値を処理できます。

k-means法のデメリット

  1. 初期クラスター中心に対する感度: K-means は、クラスター中心の初期選択に敏感です。初期化が異なると、最終的なクラスタリング結果が異なる可能性があり、グローバルな最適を見つけることが難しくなります。
  2. k の任意の選択: K-means では、ユーザーは事前にクラスターの数 (k) を指定する必要があります。クラスタの適切な数がわからないか、特定の問題に依存する可能性があるため、これは困難な場合があります。k を不適切に選択すると、クラスタリングが最適でなくなる可能性があります。

階層なしクラスタリングとは

階層クラスタリングは、類似性または距離メトリックに基づいてデータをクラスターにグループ化する一般的な方法です。ただし、場合によっては、階層構造が適切でない場合や、データが自然な階層構造を持たない場合があります。このような場合は、階層なしクラスタリング アプローチが適している場合があります。

階層なしクラスタリングとは、データに階層構造を課さないクラスタリング アルゴリズムを指します。代わりに、これらのアルゴリズムは、あらかじめ決められた構造なしでデータをクラスターに分割します。階層なしクラスタリング アルゴリズムの例には、k-means クラスタリング、DBSCAN、OPTICS などがあります。

K-means クラスタリングは、データを k 個のクラスターに分割する一般的な階層なしクラスタリング アルゴリズムです。これは、各データ ポイントを最も近い重心に繰り返し割り当て、各クラスターの重心を再計算することによって機能します。重心が変化しなくなると、アルゴリズムは終了します。

DBSCAN (Density-Based Spatial Clustering of Applications with Noise) は、孤立したポイントをノイズとして残しながら密集したポイントをグループ化する、もう 1 つの階層のないクラスタリング アルゴリズムです。あらかじめ定義された数のクラスターを想定するのではなく、クラスターはポイントの密度によって決定されます。

OPTICS (クラスタリング構造を識別するためのポイントの順序付け) は、DBSCAN に似ている別の密度ベースのクラスタリング アルゴリズムですが、異なる密度と形状のクラスターを処理するように設計されています。階層的なクラスタリング構造を生成しますが、ユーザーが事前にクラスタ数を指定する必要はありません。

階層なしクラスタリングと階層ありクラスタリング

クラスタリングは、教師なし機械学習の一種であり、固有の特性に基づいて類似のオブジェクトまたはデータ ポイントをクラスターにグループ化することを含みます。クラスタリングには主に 2 つのアプローチがあります。階層なしクラスタリングと階層ありクラスタリングです。

階層なしクラスタリング (パーティショニング クラスタリングとも呼ばれます) では、通常、データ ポイント間の距離メトリックを定義し、アルゴリズムを使用してクラスター内のデータ ポイントの配置を最適化することにより、データセットを所定の数のクラスターに分割します。パーティショニング クラスタリング アルゴリズムの例には、k-means とそのバリアントが含まれます。これらは、データ ポイントと割り当てられたクラスタ センター間の距離の二乗和を最小化することを目的としています。

対照的に、階層ありクラスタリング (階層型クラスタリングとも呼ばれます) では、クラスターのツリーのような構造を作成し、より小さく類似性の高いクラスターをより大きく類似性の低いクラスター内に入れ子にします。階層的クラスタリングには、凝集型と分割型の 2 つの主なタイプがあります。凝集階層クラスタリングは、各データ ポイントを独自のクラスターとして開始し、すべてのデータ ポイントを含む 1 つのクラスターが形成されるまで、最も近いクラスターを繰り返しマージします。分裂的階層クラスタリングは反対方向に機能し、すべてのデータ ポイントを含む単一のクラスターから開始し、それをより小さく、より類似したクラスターに再帰的に分割します。

階層なしクラスタリングと階層を使用するクラスタリングの主な違いは、結果として得られるクラスターの構造です。通常、階層を使用しないクラスタリングでは、相互にネストされていない固定数のクラスターが生成されますが、階層ありクラスタリングでは、クラスターのネストされた階層が生成され、さらに小さなクラスターに分割できます。階層ありクラスタリングは、複雑なデータセットの構造を調べるのに役立ちますが、階層なしクラスタリングは、データのセグメンテーションや分類などのタスクにより適している場合があります。

k-means法の実装

ここからは簡単なk-means法の実装を紹介します。この例では、300 個のサンプルと 4 つのクラスターを含むランダム データセットを生成します。

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs

# Generate sample data
X, y_true = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=0)

これらに対してk-means クラスタリングを適用し、結果をプロットします。n_clusters=4とすることで、4つのクラスターに分類します。

# Apply k-means clustering
kmeans = KMeans(n_clusters=4)
kmeans.fit(X)
y_kmeans = kmeans.predict(X)

# Plot the results
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis')
centers = kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c='black', s=200, alpha=0.5)
plt.show()

結果の図には、予測されたクラスターに従って色付けされたデータ ポイントの散布図と、黒い円で表されたクラスターの中心が表示されています。

G検定学習法

最後までご覧いただきありがとうございました。

当サイトではG検定に役立つ情報をまとめています。

ぜひご覧ください。

本サイトの活用方法

【G検定まとめ2024】試験当日も使える! 要点整理&試験対策カンペ【動画】

1. 人工知能とは 第1回:人工知能の定義、人工知能研究の歴史 2. 人工知能をめぐる動向 第2回:探索・推論 第3回:知識表現、機械学習・深層学習 3. 人工知能分野の問題 第4回:人工知能分野の問題 4. 機械学習の […]

【G検定まとめ2024】試験当日も使える! 要点整理&試験対策カンペ

G検定の要点をシラバスから抜粋してまとめました。これから学習する方も、復習したい方にもお使いいただけます。試験当日用のG検定のカンニングペーパー参考としてもお役立てください。試験結果を保証するものではありませんので、試験 […]

【G検定2023まとめ】理解度確認&問題集まとめ【直前対策】

G検定の要点を問題形式にまとめました。試験前の理解度確認、直前対策にお役立てください。 (最終更新日:2023年3月1日) 1. 人工知能とは 問題を解く 2. 人工知能をめぐる動向 問題を解く 3. 人工知能分野の問題 […]

【G検定2023】G検定の概要と試験のポイント

このシリーズではG検定の要点を項目ごとにまとめています。 今回の記事では「G検定の概要と試験のポイント」について紹介します。 試験の概要  G検定(公式名:ジェネラリスト検定)は、JDLA:Japan Deep Lear […]

【G検定】G検定合格体験記 〜学習方法と受験体験〜

このシリーズではG検定の要点を項目ごとにまとめています。 今回の記事では、2022年7月2日(土)開催のG検定(2022#2 )に合格した学習方法と受験体験について紹介します。 これから受験される方へ参考になれば幸いです […]

【G検定2022】シラバスでみるG検定の試験内容

このシリーズではG検定の要点を項目ごとにまとめています。 今回の記事ではシラバスをもとに「G検定の試験内容」について紹介します。 試験の概要  G検定(公式名:ジェネラリスト検定)は、JDLA:Japan Deep Le […]

参考書籍

教科書として使用する書籍

体系的に知識を整理することができます。

まずは、この1冊を読んでG検定の学習を進めましょう。

検索機能が使用できるので、Kindle版が特におすすめです。

②問題集として使用する書籍

ある程度学習が進んだら、本番を意識して問題集に取り組みましょう。

本番の試験環境を意識して、このページ「要点整理&当日用カンペ」を使用しながら解答してみましょう。