Durée: 12 mois
Rubrique: Ingénieur IA
Les machines à vecteurs de support (SVM) sont une des techniques les plus efficaces pour la classification et la régression. Elles sont particulièrement appréciées pour leur capacité à gérer des données haute dimension et leur robustesse face au surapprentissage.
Pour implémenter une SVM en Python, nous utiliserons principalement la bibliothèque scikitlearn, qui offre des outils simples et puissants pour le machine learning. Assurezvous d'avoir aussi numpy et pandas pour la manipulation des données. Voici comment installer ces bibliothèques :
bash
pip install scikitlearn numpy pandas
Prenons un exemple classique : la classification des fleurs d'Iris. Nous allons d'abord importer les données et les diviser en ensembles d'entraînement et de test :
```python import numpy as np import pandas as pd from sklearn import datasets from sklearn.modelselection import traintestsplit
iris = datasets.loadiris() X = iris.data y = iris.target
Xtrain, Xtest, ytrain, ytest = traintestsplit(X, y, testsize=0.3, randomstate=42) ```
Il est temps de créer notre modèle SVM. Nous allons utiliser le module SVC
de scikitlearn pour cela :
```python from sklearn.svm import SVC
svmmodel = SVC(kernel='linear')
svmmodel.fit(Xtrain, ytrain) ```
Après avoir entraîné notre modèle, nous devons évaluer sa performance sur l'ensemble de test :
```python from sklearn.metrics import accuracyscore, classificationreport
ypred = svmmodel.predict(Xtest)
accuracy = accuracyscore(ytest, ypred)
report = classificationreport(ytest, ypred)
print(f'Précision du modèle: {accuracy}') print('Rapport de classification:') print(report) ```
Les résultats produits incluent la précision du modèle, ainsi que d'autres métriques comme la précision, le rappel et la Fmesure. Ces valeurs vous indiquent combien de fois le modèle a correctement ou incorrectement classé les exemples de test.
L'utilisation des SVM est une excellente manière de produire des modèles de classification robustes. Cependant, le choix correct du noyau (linéaire, polynomial, radial, etc.) et des hyperparamètres est crucial pour obtenir de bons résultats.