AJOUT SVEM POUR MACHINE VECTORIELLE DE SUPPORTJ'ai des résultats DOE que j'aimerais modéliser avec Support Vector Machine (il existe de forts effets non linéaires qui ne peuvent pas être estimés avec un modèle polynomial). Comment installer le complément SVEM ?
Modélisation statistique avancéeConception d'expériencesModélisation prédictive et apprentissage automatiqueRe: ADD IN SVEM POUR MACHINE VECTORIELLE DE SUPPORTOui, l'arbre boosté peut être plus précis que les forêts aléatoires "par conception", en raison de leur correction d'erreur de prédiction itérative avec l'entraînement séquentiel des arbres. Mais les divisions complexes effectuées au cours de l'apprentissage des arbres séquentiels pour améliorer les performances peuvent n'être valables que sur l'ensemble d'entraînement et peuvent ne pas refléter ce qui pourrait se produire sur de nouveaux points de données.
Random Forest est un algorithme robuste concernant les hyperparamètres, donc augmenter le nombre d'arbres au-dessus d'une certaine valeur peut ne pas changer l'évaluation des performances, voir mon post sur LinkedIn et/ou l'article " Tunability: Importance of Hyperparameters of Machine Learning Algorithms " : 1802.09596 (arxiv.org)
Re: ADD IN SVEM POUR MACHINE VECTORIELLE DE SUPPORTAvec arbre boosté R² = 0,85
Re: ADD IN SVEM POUR MACHINE VECTORIELLE DE SUPPORTPar Random forest j'obtiens un mauvais R² = 0,63 même avec 2000 arbres
Re: ADD IN SVEM POUR MACHINE VECTORIELLE DE SUPPORTJe ne suis pas entièrement d'accord, il y a plus de nuances entre les modèles arborescents :
- Les méthodes Boosted Tree , comme XGBoost et d'autres, utilisent des arbres entraînés séquentiellement pour affiner et corriger progressivement les prédictions. Ils sont davantage influencés par les caractéristiques de l'ensemble d'apprentissage, la taille, la qualité des données, la répartition des points de données, la représentativité, ... car ils tentent de manière itérative d'avoir les meilleures prédictions (chaque arbre "corrige" les plus grandes erreurs de prédiction de l'arbre précédent) sur l'ensemble de données sur lequel ils sont formés.
Il s'agit généralement d'un algorithme décrit comme faible biais - haute variance : les prédictions peuvent être très précises, mais très sensibles/influenceuses par l'ensemble de données d'entraînement utilisé.
- Les forêts aléatoires utilisent des arbres formés en parallèle sur des ensembles de données légèrement différents (ensembles bootstrap). Les bonnes performances prédictives de cet algorithme proviennent de la moyenne des prédictions des arbres individuels. Vous pouvez le considérer comme " La sagesse de la foule " : si vous demandez le poids d'une baleine à quelqu'un, cela peut être très inexact et peu précis, mais si vous collectez les réponses de centaines ou de milliers de personnes et faites la moyenne des résultats , le résultat moyen peut être très proche de la valeur réelle.
Il s'agit généralement d'un algorithme décrit comme biais moyen/faible - faible variance : les prédictions peuvent être précises (en fonction de la moyenne des résultats individuels et de la complexité/nombre d'arbres individuels), et elles sont assez robustes à l'ensemble de données d'entraînement grâce au bootstrapping. processus et le dressage individuel des arbres (avec différentes caractéristiques).
Voici un court visuel entre les différents modèles basés sur des arbres (je n'aime pas la façon dont les arbres individuels de Random Forest ont la même structure, mais c'est un schéma simpliste) :

Pour répondre à votre question, j'essaierais les méthodes Random Forests plutôt que Boosted Tree sur un ensemble de données de petite taille comme le DoE, pour avoir plus de confiance dans les résultats, utiliser un algorithme moins sujet au surajustement et avoir de meilleures propriétés de généralisation.
Re: ADD IN SVEM POUR MACHINE VECTORIELLE DE SUPPORTDevinez que les modèles basés sur des arbres comme la forêt aléatoire et XGboost nécessitent un grand ensemble de données, à moins que vous ne puissiez utiliser SVEM pour de petits ensembles, n'est-ce pas ?
Re: ADD IN SVEM POUR MACHINE VECTORIELLE DE SUPPORTSalut @frankderuyck ,
Bon de savoir !:)
J'utilise les réseaux de neurones comme dernière option de modélisation possible, il existe de nombreux modèles classiques et algorithmes ML plus simples qui fonctionnent aussi bien (et parfois mieux). Ces autres options sont également plus rapides à calculer, ne nécessitent pas de connaissances approfondies, de tests et de validation pour les affiner (contrairement aux NN où il faut préciser l'architecture, avec le nombre de couches, le type de fonctions, le boosting ou non, ... ou en utilisant le complément Neural Network Tuning ) et sont plus faciles à interpréter (en termes de profils de réponse et d'importance relative des facteurs).
Sur les données tabulaires, si le seul modèle capable de bien fonctionner est celui des réseaux de neurones, il y a de fortes chances que vous ayez d'autres problèmes, en termes de qualité des données, de représentativité, de valeurs manquantes/aberrantes, de répétabilité/reproductibilité, etc...
Les modèles arborescents fournissent un bon benchmark de performances et constituent souvent une option sûre et fiable, voir l'article " Pourquoi les modèles arborescents surpassent-ils toujours le deep learning sur les données tabulaires ?" (2022) https://arxiv.org/abs/2207.08815
Dans votre capture d'écran, il semble que le modèle SVM optimal trouvé avec la conception Tuning soit assez intéressant :
- Il utilise 10 vecteurs de support, donc moins de la moitié des points sont utilisés pour construire les « limites »/vecteurs utilisés dans le modèle SVM, ce qui peut être un bon signe d'une faible complexité et de bonnes propriétés de généralisation,
- La valeur de courbure (gamma) est assez faible, de sorte que le profil de réponse et les limites ne peuvent pas être trop complexes et très courbés (donc encore une fois, une faible complexité et de bonnes propriétés de généralisation),
- La pénalité (valeur du coût) semble assez élevée, mais avec un ensemble de données de petite taille, c'est souvent le cas en pratique, car tout point mal classé/mal prédit augmentera considérablement le taux d'erreur de classification/RMSE : 1 point mal classé sur 25 = 4 % d'erreur de classification. taux, par rapport à une taille d'ensemble de données plus élevée où un point mal classé représenterait moins de 1 % de taux de mauvaise classification. Dans certaines situations, il peut être intéressant de choisir un modèle avec une erreur un peu plus grande (RMSE/Misclassification rate), mais avec beaucoup moins de vecteurs supports : vous dégradez vos performances prédictives sur l'ensemble d'entraînement au profit d'un modèle moins complexe qui pourrait être capable de mieux généraliser sur de nouvelles données.
Vous pouvez utiliser le tableau généré par la conception Tuning, avec les métriques de performances, pour mieux évaluer l'importance relative et la contribution des deux hyperparamètres sur les métriques de performances (taux d'erreurs de classification pour la classification, ou RASE et R² pour la régression).
Comme toujours, il est recommandé de valider votre modèle avec de nouveaux points de validation, pour vous assurer qu'il ne soit pas surajusté.
Re: ADD IN SVEM POUR MACHINE VECTORIELLE DE SUPPORTSalut Victor, cette conception de réglage fonctionne très bien, je souhaite modéliser une réponse de qualité Y en fonction de trois Y FPCA à partir des spectres NIR (FDA). J'ai essayé le réseau neuronal mais même avec 3 nœuds TanH, le profileur montre à mon avis une courbure trop élevée et irrégulière. SVE après le réglage fait du bon travail, je prends en charge l'apprentissage automatique vectoriel !


Re: ADD IN SVEM POUR MACHINE VECTORIELLE DE SUPPORTSalut @frankderuyck ,
Quelques questions avant de répondre à la vôtre :
- Pourquoi voudriez-vous utiliser SVEM pour SVM ? Support Vector Machines est un algorithme de ML robuste, qui peut être utilisé pour des ensembles de données de petite taille comme le DoE. Plus d'infos sur la robustesse de l'algorithme sur LinkedIn.
Il existe également de nombreuses façons d'évaluer le surajustement pour SVM sans utiliser d'ensemble de validation, en vérifiant le nombre de vecteurs de support et les valeurs de pénalité (coût) et de courbure (gamma) si vous avez affiné vos hyperparamètres SVM avec une conception Tuning . .. Je pense écrire un article de blog sur l'évaluation et la prévention du surajustement pour des algorithmes robustes (SVM, Random Forest) en l'absence de validation (dans les ensembles de données du DoE par exemple).
- Avez-vous également envisagé d’autres algorithmes ? SVM est un algorithme robuste pour l'analyse d'ensembles de données de petite taille, mais Random Forest peut également fournir de bons résultats et peut constituer une bonne référence pour évaluer et comparer les performances. Plus d’infos sur Random Forests sur LinkedIn.
- Combien de niveaux avez-vous pour vos facteurs ? Les algorithmes ML ne peuvent être utiles que si vous disposez de suffisamment de niveaux pour chacun de vos facteurs afin de permettre une interpolation fluide. Plus de 3 niveaux peuvent être un bon point de départ.
Concernant l'utilisation du SVEM, vous pouvez y accéder de différentes manières :
- Dans la plateforme "Make Validation Column", vous avez la possibilité de créer une table d'Autovalidation : Lancez la plateforme Make Validation Column (jmp.com) Cela dupliquera les lignes et créera une colonne de poids anti-corrélés (entre entraînement et validation) que vous peut être utilisé comme "Fréquence" lors du lancement de la plateforme. Vous pouvez ensuite simuler les résultats de prédiction en faisant varier les poids entre la formation et la validation (cliquez avec le bouton droit sur un panneau avec les résultats de validation, cliquez sur Simuler et spécifiez la colonne de poids comme colonne pour activer et désactiver).
- Vous pouvez également télécharger le complément SVEM, qui fera la même chose que la table d'autovalidation : Re-penser la conception et l'analyse des expériences ? (2021-EU-30MP-776) - Communauté d'utilisateurs JMP
Vous pouvez ensuite reproduire les mêmes étapes que précédemment et simuler les résultats pour évaluer la robustesse du modèle.
Je voudrais cependant souligner que la validation croisée (K-folds ou SVEM) n'est pas à proprement parler une méthode de validation, mais plutôt une méthode de "débogage" pour évaluer la robustesse des performances de l'algorithme sur divers ensembles d'entraînement et de validation. La principale difficulté après l’utilisation d’une technique de validation croisée est de savoir comment donner un sens aux résultats et comment procéder ensuite :
Faire la moyenne des modèles individuels formés sur différents plis ? Créer un ensemble avec ces modèles ? Garder le meilleur modèle entraîné sur un pli (je ne recommanderais pas cette option) ? Entraîner le modèle sur l'ensemble de données une fois la robustesse vérifiée avec la validation croisée ? ... Il n'y a pas de réponse définitive à cette question et cela est lié au jeu de données, à la complexité de la modélisation, à l'amélioration des performances, aux pratiques des utilisateurs, ...
Plus d'infos ici avec quelques épisodes de Cassie Kozyrkov sur le thème de la validation croisée : https://youtu.be/zqD0lQy_w40?si=41jfBs83Q0TIlusr
https://youtu.be/by59hsYO0Lg?si=XeZ33j2e4jKQPaRA
J'espère que cette réponse vous aidera,
Re: ADD IN SVEM POUR MACHINE VECTORIELLE DE SUPPORTBonjour Victor, avec un peu de retard... pourquoi choisiriez-vous Random Forest plutôt que SVEM pour modéliser les données du DOE ?
Re: ADD IN SVEM POUR MACHINE VECTORIELLE DE SUPPORTSalut @frankderuyck ,
Il s'agit de deux considérations différentes :
- SVEM est une stratégie de validation qui peut être appliquée à n'importe quel modèle, de la régression linéaire aux réseaux de neurones.
- Random Forest est un modèle d'apprentissage automatique.
Les deux partagent en commun une manière d’éviter le surapprentissage lors de la modélisation :
- Random Forest utilise des échantillons bootstrap et un échantillon « Out-of-Bag » comme validation de modèle « interne ». L'échantillon « Out-of-Bag » fait partie des données non utilisées dans la formation : les échantillons de formation sont des échantillons bootstrap échantillonnés avec remplacement dans l'ensemble de données d'origine. Théoriquement, vous pouvez calculer qu'en échantillonnant avec remplacement vos données d'origine, environ 1/3 de vos données ne seront pas échantillonnées : machine learning - Random Forests out-of-bag sample size - Cross Validated (stackexchange.com)
Cet échantillon constitue l'échantillon « Out-of-bag » non utilisé dans l'apprentissage du Random Forest et permet d'évaluer/valider la pertinence et la précision du modèle.
- SVEM utilise des poids anticorrélés pour la formation et la validation, ce qui signifie qu'une expérience avec un poids élevé pour la formation aura un faible poids pour la validation. En ajustant un modèle avec cette configuration de validation, puis en modifiant les poids et en réajustant le modèle avec de nouveaux poids pour l'entraînement et la validation un grand nombre de fois, vous disposez de modèles légèrement différents que vous pouvez assembler/combiner, afin de réduire la variance (et éviter le surapprentissage).
Maintenant, mon avis et choix personnel :
- Ce que je vois fréquemment, ce sont des personnes qui utilisent SVEM pour leur DoE avec des modèles très complexes sans même d'autres considérations ni analyse/modélisation préalable. Vous pouvez souvent voir par exemple SVEM appliqué avec des réseaux de neurones pour des conceptions et des résultats relativement simples. Cela ressemble pour moi à " utiliser un bazooka pour tuer une mouche " : j'ai tendance à choisir les options/modèles les plus simples avant d'augmenter la complexité (si nécessaire) : le rasoir d'Ockham . Vous devez également tenir compte du nombre de niveaux dont vous disposez pour vos facteurs et d'autres considérations (comme la dimensionnalité), car les modèles d'apprentissage automatique sont des modèles d'interpolation, très efficaces pour trouver un modèle entre les points. Ainsi, si vous ne disposez que de 2 à 3 niveaux pour vos facteurs, cela pourrait ne pas suffire pour réellement tirer un avantage de l’apprentissage automatique.
- Si vous disposez de suffisamment de niveaux et que la modélisation linéaire traditionnelle ne semble pas appropriée en raison de relations non linéaires, alors vous pourriez être intéressé d'essayer les modèles de Machine Learning.
- Puisque vous disposez d'un ensemble de données de formation de petite taille mais de haute qualité avec votre DoE, vous devez choisir un modèle de ML qui est simple (pas ou peu de réglages précis des hyperparamètres), robuste (moins sensible au réglage des valeurs des hyperparamètres) et moins sujet au surajustement, car vous ne pouvez pas diviser vos données DoE en ensembles de formation et de validation. C'est là que Random Forests (avec sa validation d'échantillon interne "Out-of-bag") et SVM (vous pouvez évaluer la possibilité de surajustement avec le choix des hyperparamètres et le nombre de vecteurs de support) sont intéressants.
L'utilisation d'un algorithme ML robuste au lieu d'un algorithme complexe avec une stratégie SVEM présente également d'autres avantages, tels qu'un temps de calcul réduit et une interprétabilité plus facile.
J'espère que cette réponse vous aidera et aura du sens pour vous,
Re: Module complémentaire SVEM pour machine à vecteurs de supportSalut Victor, j'ai essayé d'utiliser ceci pour des résultats de mélange, j'ai obtenu un bon modèle mais l'optimisation avec le profileur n'a pas fonctionné car la somme des composantes su n'était pas égale à 1, mais proche de 3. Le même problème se produit dans d'autres modèles d'apprentissage automatique, PLS et même Gen Reg
Re: Module complémentaire SVEM pour machine à vecteurs de supportSalut Franck,
Avez-vous vérifié que vos facteurs de mélange possèdent les propriétés de colonne appropriées ?
- « Mélange » avec des valeurs de facteurs individuels faibles et élevées
- « Rôle de conception » avec le rôle défini comme Mixte
- « Modifications des facteurs » définies sur Facile (ou autre type si vous avez un scénario de parcelles divisées/randomisation restreinte)
Voici un exemple sur les données de mélange de Donev avec le facteur CuSO4 :

Lors du lancement du Profiler à partir d'un processus gaussien (ou de tout autre modèle ML), la contrainte de mélange est respectée et appliquée (la somme des facteurs de mélange est toujours égale à 1) :
J'espère que cette réponse pourra résoudre votre problème.
Re: Module complémentaire SVEM pour machine à vecteurs de supportOK Victor, merci !