Intégration multiplateforme de ThunderSVM : guides pour Python, R et Matlab
ThunderSVM est une bibliothèque de machines à vecteurs de support (SVM) optimisée pour les environnements GPU et CPU. Elle propose des interfaces pour plusieurs langages, permettant aux développeurs de l'intégrer dans leurs flux de travail existants. Ce guide détaille son utilisation avec Python, R et Matlab.
Architecture des interfaces langagières
Le code source de ThunderSVM organise ses interfaces de manière modulaier :
- Python : le module se trouve dans
python/thundersvm/. - R : l'implémentation est centralisée dans le fichier
R/svm.R. - Matlab : les fonctions d'entraînement et de prédiction sont séparées dans
Matlab/svm_train_matlab.metMatlab/svm_predict_matlab.m.
Des benchmarks internes mnotrent que ThunderSVM peut réduire significativement le temps d'entraînement par rapport à des implémentations classiques comme libsvm, particulièrement sur des jeux de données volumineux.
Implémentation en Python
L'interface Python expose une API compatible avec le style de scikit-learn, ce qui facilite son adoption.
Installation
git clone https://gitcode.com/gh_mirrors/th/thundersvm
cd thundersvm/python
pip install .
Exemple d'utilisation
from thundersvm import SVC
import numpy as np
# Préparation des données
train_features = np.array([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
train_labels = np.array([0, 1, 0])
# Configuration et entraînement du modèle
classifier = SVC(kernel='rbf', C=10)
classifier.fit(train_features, train_labels)
# Prédiction sur de nouvelles données
test_data = np.array([[7.0, 8.0]])
prediction_result = classifier.predict(test_data)
print(f"Classe prédite : {prediction_result[0]}")
Utilisation depuis R
L'interface R est fournie sous la forme d'un script chargeable directement dans une session R.
Configuraton initiale
install.packages("R6")
source("R/svm.R")
Démonstration
# Génération d'un jeu de données synthétique
donnees_x <- matrix(rnorm(200), ncol=2)
etiquettes <- c(rep(1, 100), rep(-1, 100))
# Entraînement avec noyau gaussien
svm_modele <- svm_train(etiquettes, donnees_x, kernel="rbf", gamma=0.05, cost=5)
# Évaluation sur les données d'entraînement
resultats <- svm_predict(svm_modele, donnees_x)
Déploiement dans Matlab
Pour Matlab, il est nécessaire de compiler la bibliothèque au préalable. Les fonctions fournies imitent l'interface de libsvm.
Préparation de l'environnement
% Ajouter le dossier des fonctions Matlab au chemin de recherche
addpath('Matlab')
Script d'exemple
% Création de données binaires simples
features = [randn(50,2) + 2; randn(50,2) - 2];
cibles = [ones(50,1); -ones(50,1)];
% Entraînement avec des hyperparamètres spécifiques
modele_svm = svm_train_matlab(cibles, features, '-t 2 -c 1 -g 0.2');
% Prédiction et calcul de la précision
[prediction, precision] = svm_predict_matlab(cibles, features, modele_svm);
fprintf('Précision du modèle : %.2f%%\n', precision(1));
Références complémentaires
La documentation du projet offre des ressources plus approfondies :
docs/parameters.mdpour une description exhaustive des paramètres.docs/faq.mdpour les problèmes courants et leurs solutions.