43章詳細:サポートベクターマシン

サポートベクターマシン(SVM:Support Vector Machine)は、分類と回帰どちらにも使用できる強力かつ柔軟な教師ありアルゴリズムです。この章では、SVMの背後にある考え方の直感的な理解を促すと共に、分類問題での使用例を示します。

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

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

フルサイズ、フルカラーの図は、筆者のGitHub(https://oreil.ly/PDSH_GitHub)で確認できます。

43.1 サポートベクターマシンの必要性

ベイズ分類(「41章 詳細:ナイーブベイズ分類」を参照)を取り上げた際に、各クラスの分布を表す簡単なモデルについて学び、それを基にした生成モデル(generative model)を用いて、新しいポイントに対する確率的なラベル付けを試みました。それは生成分類の一例でしたが、ここでは識別分類を行います。つまり各クラスをモデリングするのではなく、単純にクラスを分割する直線や曲線(2次元の場合)または多様体(多次元の場合)を見つけます。

一例として、2つのクラスが明確に分かれている場合の、単純な分類について考えてみましょう(図43-1を参照)。

In [2]: from sklearn.datasets import make_blobs X, y = make_blobs(n_samples=50, centers=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.