19章クラスタリング

レシピ19.0 はじめに

 本書では、主に教師あり機械学習について説明してきた。教師あり機械学習は、特徴量とターゲットの両方が得られることが前提となっている。しかし、残念ながら常に両方が得られるわけではない。特徴量だけしか得られない場合もよくある。例えば、スーパーマーケットの売上データがあり、メンバーズクラブの会員と非会員を売上データだけで分離したいとしよう。これは教師あり学習では難しい。モデルを訓練し評価するのに用いるターゲットがないからだ。このような場合に使えるのが、教師なし学習だ。会員と非会員のスーパーでの購買行動が異なるのであれば、会員2人の間の相違の平均は、会員と非会員の相違の平均よりも小さいだろう。言い換えると、観測値には2つのクラスタがあるはずだ。

 クラスタリングアルゴリズムの目的は、このような隠れた観測値中のグループを見つけ出すことにある。うまくいけば、ターゲットベクトルがなくても観測値のクラスを予測することができる。データ中のクラスタを発見するクラスタリングアルゴリズムとして、さまざまな手法が提案されている。本章では、そのうちの一部を紹介し、scikit-learnで利用する方法を説明する。

レシピ19.1 k-平均法によるクラスタリング

問題

観測値をk個のグループにグループ分けしたい。

解決策

 k-平均法(k-Means)を用いる。

# ライブラリをロード from sklearn import datasets from sklearn.preprocessing import StandardScaler from sklearn.cluster import KMeans # データをロード iris = datasets.load_iris() ...

Get Python機械学習クックブック 第2版 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.