47章詳細:k平均法クラスタリング

前の章では、教師なし機械学習モデルの1カテゴリである、次元削減を学びました。この章では、教師なし機械学習モデルの別のクラス、すなわちクラスタリングアルゴリズムを取り上げます。クラスタリングアルゴリズムは、データの特性から、ポイント群の最適な分割または離散ラベル付けを学習します。

scikit-learnでは数多くのクラスタリングアルゴリズムが提供されていますが、おそらく最も理解しやすいアルゴリズムはk平均法k-means)クラスタリングと呼ばれ、sklearn.cluster.KMeansとして実装されています。

標準的なモジュールを最初にインポートします。

In [1]: %matplotlib inline
        import matplotlib.pyplot as plt
        plt.style.use('seaborn-whitegrid')
        import numpy as np

47.1 k平均法の基礎

k平均法アルゴリズムは、ラベル付けされていない多次元データセットから、与えられた数のクラスタを探します。これは、最適なクラスタリングはどのように見えるかという、次のような単純な概念に基づいています。

  • クラスタの中心は、クラスタに属するすべてのポイントの算術平均である。
  • 各ポイントは、他のクラスタ中心よりも自分の属するクラスタの中心に近い。

この2つの仮定が、k平均法モデルの基礎です。アルゴリズムがどのようにこの解に至るかについては、後で詳しく説明しますが、まずは単純なデータセットにk平均法を適用した結果を見てみましょう。

まず、4つの異なる集団を持つ2次元のデータセットを生成します。これが教師なし学習アルゴリズムであることを強調するために、プロットにはラベルを含めません( ...

Get Pythonデータサイエンスハンドブック 第2版 ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.