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.