top of page

L'astuce du noyau

L'astuce du noyau

En machine learning, l'astuce du noyau est une transformation mathématique qu'on peut appliquer à notre base de données au moment de la création du modèle. Elle permet d’adapter des données non-linéairement séparables (voir notre page dédiée pour plus de précision sur ce terme), pour pouvoir leur appliquer un algorithme qui ne fonctionne habituellement qu’avec des données linéairement séparables.


Plus précisément, l'astuce du noyau consiste à transposer implicitement les données dans un espace de dimension supérieure, c'est-à-dire à leur appliquer une fonction particulière (appelée noyau), au choix parmi plusieurs fonctions. Ainsi, les classes deviennent linéairement séparables dans ce nouvel espace.


Noyau gaussien


Une transposition courante lors de l'utilisation de l'astuce du noyau est le noyau gaussien (aussi appelé RBF : Radial Basis Function). Cette fonction réalise la transformation suivante : K:(x_1,x_2 )↦exp⁡(-γ‖x_1-x_2 ‖^2). Pour l'utiliser, il nous faut fixer l'hyperparamètre gamma. Gamma permet de régler la sensibilité du modèle à chaque observation individuelle. Pour un gamma faible, une faible importance est accordée à chaque observation : la frontière de décision est donc plus lisse, et on peut risquer le sous-apprentissage si les données sont complexes. Pour un gamma élevé, une grande importance est accordée à chaque observation : la frontière de décision est moins lisse, et on peut risque le sur-apprentissage. On peut donc utiliser gamma pour trouver le bon compromis entre sur-apprentissage et sous-apprentissage.

Illustration de l'influence de gamma sur la frontière de décision
Illustration de l'influence de gamma sur la frontière de décision

Python propose une formule déterminant automatiquement une valeur de gamma, en fonction de la variance des données. C'est ce que signifie le paramètre "gamma='scale'" dans le code suivant, qui crée un modèle avec l'algorithme SVM (Machine à Vecteurs Supports) et un noyau RBF :



Voir aussi : all(), any(), append(), count(), enumerate(), extend(), filter(), float() format() input(), int(), isdigit(), isinstance(), items(), join(), endswith(), list(), map(), max(), mean(), min(), pop(), range(), len(), startswith(), zip(), type(), get(), symmetric_difference(), keys(), difference()


Numpy : arange(), array(), delete(), hsplit(), hstack(), linspace(), logical_and(), logical_or(), polyfit()


Pandas : concat(), concatenate(), describe(), dict(), drop_duplicates(), dropna(), fillna(), from_dict(), groupby(), head(), iloc, info(), insert(), isin(), melt(), merge(), pivot_table(), read_csv(), read_excel(), rename(), where()


Machine Learning : F1-Score, Précision, Rappel, Normalisation, Courbe d’apprentissage, Les résidus, Régression VS classification, Mean Absolute Error (MAE), Mean Squared Error (MSE), Root Mean Squared Error (RMSE), Accuracy, L’astuce du noyau, Bases d’apprentissage et de test, Classes linéairement séparables, Apprentissage supervisé VS non-supervisé, Coefficient de détermination R2, Validation croisée


N'hésitez pas à consulter nos formations sur cette page.


Glossaire pour apprendre à coder sur Python

Apprenez à coder sur Python

avec des experts

Notre organisme de formation spécialisé dans le langage Python et la Data Science forme les débutants et perfectionne les experts sur ce langage informatique. Pourquoi pas vous?

Des questions?

Contact Expert Python

Un formateur Python vous répond très vite

bottom of page