Support Vectors Machine (SVM)

en langage python

L'essentiel de cette page

Le SVM permet de faire des regroupement de données.

Cette page est en cours de développement pour aborder le paramétrage, en particulier le changement de noyaux.

  • Charger les données

import seaborn as sns

# Charger le jeu de données iris

iris = sns.load_dataset('iris')

# Transformer les espèces en catégories

colors = iris.species.astype('category')

# Les couleurs déduites de chaque espèce d'iris

y = colors.cat.codes

# les variables quantitatives

X = iris.iloc[:,0:4]

  • Prédire les catégories par la méthode SVM

import matplotlib.pyplot as plt

from sklearn import svm

clf = svm.SVC(kernel='rbf', C=0.1, gamma=0.5)

clf.fit(X, iris.iloc[:,4])

  • Etablir une prédiction

prediction = clf.predict(X)

import pandas as pd

prediction = pd.Series(prediction)

prediction = prediction.astype('category')

y_pred = prediction.cat.codes

  • Afficher les données réelles et prédites pour une comparaison

fig, ax = plt.subplots(figsize=(15, 12))

plt.subplot(221) #

plt.scatter(iris.iloc[:, 0], iris.iloc[:, 1], c=y, s=30, cmap=plt.cm.Paired)

plt.title("Vrais catégories")

plt.subplot(222)

plt.scatter(iris.iloc[:, 0], iris.iloc[:, 1], c=y_pred, s=30, cmap=plt.cm.Paired)

plt.title("Categories du SVM")

plt.show()