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()