Pour les données linéaires, cela n'est bien sûr pas utile, mais pour les données non linéaires, cela semble toujours utile. L'utilisation de classificateurs linéaires est beaucoup plus facile que non linéaire en termes de temps de formation et d'évolutivité.
@BartoszKP a déjà expliqué pourquoi l'astuce du noyau est utile. Pour répondre pleinement à votre question, je voudrais toutefois souligner que la noyauisation n'est pas la seule option pour traiter des données non linéairement séparables.
Il existe au moins trois bonnes alternatives communes pour la délinéarisation du modèle:
- Méthodes basées sur le réseau Neutal, où vous ajoutez une (ou plusieurs) couches d'unités de traitement, capables de transformer vos données dans le cas séparable linéairement. Dans le cas le plus simple, il s'agit d'une couche à base de sigmoïdes, qui ajoute une non-linéarité au processus. Une fois initialisés au hasard, ils reçoivent des mises à jour lors de l'optimisation basée sur le gradient de la couche supérieure (ce qui résout en réalité le problème linéaire).
- En particulier, des techniques d'apprentissage approfondi peuvent être utilisées ici pour préparer des données pour une classification linéaire supplémentaire. C'est une idée très similaire à la précédente, mais ici, vous entraînez d'abord vos couches de traitement afin de trouver un bon point de départ pour un réglage plus fin basé sur l'apprentissage d'un modèle linéaire.
- Projections aléatoires - vous pouvez échantillonner des projections (non linéaires) à partir d'un espace prédéfini et former un classificateur linéaire par-dessus. Cette idée est largement exploitée dans le soi-disant apprentissage machine extrême , où des solveurs linéaires très efficaces sont utilisés pour entraîner un classificateur simple sur des projections aléatoires et obtenir de très bonnes performances (sur des problèmes non linéaires de classification et de régression, consultez par exemple l' apprentissage extrême machines ).
Pour résumer, la noyalisation est une excellente technique de délinéarisation, et vous pouvez l' utiliser lorsque le problème n'est pas linéaire, mais cela ne devrait pas être aveugle "si alors". Ce n'est là qu'une des quelques méthodes intéressantes au moins, qui peuvent conduire à divers résultats, selon le problème et les exigences. En particulier, ELM a tendance à trouver des solutions très similaires à celles fournies par SVM kernelized alors qu'en même temps peut être formé des lignes de grandeur plus rapidement (il évolue donc beaucoup mieux que SVM kernelized).
Je vais essayer de fournir une réponse non technique à votre question.
En effet, le linéaire devrait être préféré et devrait être le premier choix pour les raisons que vous mentionnez, le temps de formation, l'évolutivité, ainsi que la facilité d'interprétation du modèle final, le choix de travailler sur le primaire ou le double, plus de tolérance au sur-ajustement, etc.
Si le modèle linéaire n'aboutit pas à des performances satisfaisantes, vous pouvez essayer des solutions non linéaires. Voici quelques compromis à considérer:
la source