Comment écrire un algorithme de machine à vecteurs de support en Python ?
Support Vector Machine (SVM) est un algorithme d'apprentissage automatique utilisé pour les problèmes de classification binaire et de régression. Son objectif principal est de trouver un hyperplan optimal qui sépare autant que possible les points de données de différentes catégories et maximise la distance entre les points de données situés à la limite de l'hyperplan. Dans cet article, je vais présenter comment utiliser Python pour écrire un algorithme simple de machine à vecteurs de support et donner des exemples de code spécifiques.
Tout d'abord, nous devons installer la bibliothèque scikit-learn. Il peut être installé dans l'environnement Python à l'aide de la commande suivante :
pip install -U scikit-learn
Ensuite, nous importons les bibliothèques requises :
from sklearn import svm
Dans cet exemple, nous utiliserons la classe SVC de la bibliothèque scikit-learn pour implémenter l'algorithme de machine à vecteurs de support . Nous utiliserons un exemple simple pour illustrer l’utilisation de l’algorithme. Supposons que nous ayons un ensemble de données de formation X composé de deux fonctionnalités X et de l'étiquette de catégorie correspondante y. Nous voulons prédire la catégorie de nouveaux points de données en entraînant un modèle SVM.
Voici un exemple de code simple :
# 创建训练数据集 X = [[0, 0], [1, 1]] y = [0, 1] # 创建SVM模型 clf = svm.SVC() # 训练模型 clf.fit(X, y) # 预测新数据点的类别 new_data = [[2, 2]] print(clf.predict(new_data))
Dans cet exemple, nous créons d'abord un ensemble de données d'entraînement X contenant deux fonctionnalités et l'étiquette de catégorie correspondante y. Ensuite, nous créons un modèle de machine à vecteurs de support clf en utilisant la classe SVC. Ensuite, nous utilisons la fonction fit pour entraîner le modèle. Enfin, nous utilisons la fonction de prédiction pour prédire le nouveau point de données et afficher sa catégorie.
Notez que l'exemple ci-dessus n'est qu'un exemple simple et que les applications réelles nécessitent des ensembles de données plus complexes et plus d'étapes de prétraitement.
En plus de la fonction de noyau linéaire par défaut, la machine vectorielle de support prend également en charge l'utilisation d'autres fonctions du noyau pour traiter des ensembles de données non linéaires. La classe SVC de la bibliothèque scikit-learn peut spécifier la fonction du noyau à utiliser via le paramètre 'kernel'. Par exemple, une fonction de noyau polynomial peut être utilisée pour traiter un ensemble de données avec des caractéristiques polynomiales :
# 创建SVM模型,并指定使用多项式核函数 clf = svm.SVC(kernel='poly', degree=3)
Dans le code ci-dessus, nous avons créé un modèle SVM clf et spécifié la fonction de noyau polynomial en utilisant le paramètre 'poly' et avons passé le ' Paramètre degré' Le degré du polynôme est spécifié.
En plus de cela, les machines à vecteurs de support peuvent également gérer des ensembles de données avec des classes déséquilibrées. La classe SVC de la bibliothèque scikit-learn peut spécifier le poids de la classe via le paramètre « class_weight ». Par exemple, le paramètre 'class_weight' peut être utilisé pour équilibrer les poids des classes plus petites :
# 创建SVM模型,并指定类别权重 clf = svm.SVC(class_weight={0: 1, 1: 10})
Dans le code ci-dessus, nous avons créé un modèle SVM clf et spécifié le poids de la classe à l'aide du paramètre 'class_weight', où la classe 0 a un poids de 1 , le poids de la catégorie 1 est de 10.
Pour résumer, l'exemple ci-dessus donne un code Python simple pour implémenter l'algorithme de machine à vecteurs de support. Grâce à la classe SVC de la bibliothèque scikit-learn, nous pouvons créer un modèle de machine à vecteurs de support, entraîner le modèle et utiliser le modèle pour faire des prédictions sur de nouveaux points de données. En plus de cela, nous pouvons également gérer différents types d'ensembles de données en spécifiant différentes fonctions de noyau et poids de classe. J'espère que cet article vous aidera à comprendre le processus de mise en œuvre de l'algorithme de la machine à vecteurs de support !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!