modèle de déploiementsalut
à tout le monde.
Dans 2 fichiers jmp attachés. Celui nommé Training-validation-test a été utilisé pour construire un modèle RF avec les résultats suivants.
Le fichier contient une réponse numérique et 20 prédicteurs différents dont l'un est catégorique. Les prédicteurs sont des valeurs de capteurs.

Comme vous pouvez le voir, le biais est très bon tandis que la variance est légèrement élevée (92-69 = 23%).
Ensuite, une nouvelle base de données avec des exemples jamais vus par le modèle a été utilisée pour simuler le déploiement de l'algorithme sur de nouvelles données.
Avec une forte surprise, le résultat était vraiment médiocre avec un R2 entre la réponse prévue et la réponse réelle proche de zéro. Nous n'avons pas pu comprendre ce comportement. Le R2 = 68% pour les données de test après tout ne semble pas être vraiment mauvais. Nous nous attendions donc à obtenir à coup sûr un R2 supérieur à zéro.
S'il vous plaît, toute aide / commentaire est le bienvenu.
Felice-Gian
AnalytiqueRe: modèle de déploiementPratiquement toutes les variables X (à l'exception de X12, X13 et X19) sont significativement différentes, en moyenne, entre les deux ensembles.Donc, je suppose que les nouvelles données ne sont pas simplement un autre échantillon aléatoire de la même population, mais proviennent d'une population différente.Il n'est pas surprenant que votre modèle, qui s'adapte assez bien aux données d'origine, soit aussi mal adapté aux nouvelles données, lorsque ces nouvelles données proviennent d'une population différente.
Je suppose que la question à se poser est de savoir pourquoi il provient d'une population différente?Apparemment, vous pensiez que les données provenaient de la même population (ou de quelque chose de similaire).Mais ces variables doivent être si différentes entre les deux ensembles qu'une telle hypothèse n'est clairement pas correcte.
Pour voir les différences, j'ai concaténé les 2 tables et juste utilisé Fit Y by X, Y étant toutes vos variables X et X étant la table source créée lorsque je les ai concaténées.
Re: modèle de déploiementJe suis d'accord pour @dale_lehman , les nouvelles données sont différentes.
J'ai pu adapter un modèle similaire, travaillant également mal sur de nouvelles données.

La matrice de nuage de points montrant quelques détails, par exemple X5 utilisant une très petite plage des données d'origine, idem avec X11 ...
Dans les deux images, les nouvelles données sont sélectionnées. Peut-être que cela vous aide à trouver la raison pour laquelle il y a une différence.

Re: modèle de déploiementSalut Dale et Georg
Merci pour votre réponse.
En réalité, les différences entre les deux distributions pour chaque prédicteur ne me semblent pas si différentes (voir les histogrammes dans l'image ci-jointe. Avec bls, nous indiquons l'ensemble Training-Val-Test et exp l'ensemble jamais vu par le modèle). Peut-être que le X20 montre un nouveau pic dans les données jamais vues qui étaient absentes auparavant. Mais les distributions restantes ne sont que moins peuplées que les précédentes.
Si la distribution du prédicteur de l'ensemble d'apprentissage est plus large que le premier test, le modèle doit avoir "visité" l'espace de phase occupé par le prédicteur de l'ensemble de test. Correct? Alors pourquoi devrait-il faire une mauvaise prédiction?
Quoi qu'il en soit, j'ai confirmé (même si pour nous c'est étrange) ce que vous dites en prenant au hasard 2000 instances (au lieu des 2000 dernières instances jamais vues par le modèle de forêt aléatoire et une fois entraîné, il était capable de prédire correctement la réponse. Donc, si une légère différence en termes de moyenne / std fait une grande différence en termes de performances de prédiction, comment pouvons-nous utiliser ces modèles en production où les signaux changent continuellement?
Rgds.Felice / Gian
Re: modèle de déploiementMaintenant que je regarde de plus près, je vois qu'il s'agit de données de séries chronologiques.De mon point de vue initial, il ne semble pas que le processus ait changé de manière significative.Cependant, je pense que le problème est que le paradigme train-validation-test n'est pas vraiment approprié pour les données de séries chronologiques.Je suggère de créer une période de temps distincte (par exemple, le dernier mois du premier ensemble de données) comme ensemble de validation et de ré-estimer le modèle.Je suppose que les performances du modèle lors de la validation et les données jamais vues auparavant devraient être plus similaires si vous estimez le modèle de cette façon.Je suis toujours un peu préoccupé par les différences notables entre les variables X dans les deux ensembles de données - cela pourrait nécessiter une modélisation de séries chronologiques plus sophistiquée (comme la modélisation de la saisonnalité potentielle).
Re: modèle de déploiementEn attendant, je crois que je ne pourrai pas adapter un modèle valide / raisonnable pour les données.
Ma première approche a été de générer une colonne de validation statifiée par Xs.
La série temporelle allusion à @dale_lehman était utile, j'ai donc examiné les données de manière chronologique,
réalisant qu'avec le temps, la combinaison des X change. Et là encore, il me semble que "New" est différent. Oui, les X couvrent la même gamme, mais cela ne suffit pas. Je pense que la combinaison est différente dans "Nouveau", ça veut dire que c'est une sorte d'extrapolation. Ce ne serait pas un problème pour la régression, mais pour des méthodes comme RF, cela compte (le modèle est multidimensionnel et hautement non linéaire, donc difficile à regarder à l'intérieur).
D'un autre côté, je n'ai pas pu adapter un modèle raisonnable à une autre méthode (neurale, Boosted Tree). Il me semble que nous n'avons pas les informations appropriées dans les colonnes X pour construire un modèle solide.
Alors je me pencherais sur la physique du processus ou quoi que ce soit,
- comment les X peuvent / peuvent changer le Y,
- quel peut être le bruit
- et ce qui fait que les choses changent au fil du temps, et l'inclure dans l'ensemble de données.
- et je suis également curieux de connaître la structure des données, il existe des groupes de lignes avec la même date et les mêmes valeurs pour certains paramètres
Ce qui m'a surpris, c'est que, lorsque j'ai fait une colonne de validation stratifiée par le temps, j'ai obtenu le même résultat (modèle juste pour la première partie, pas de modèle avec les nouvelles données).
Bonne chance,
Re: modèle de déploiementJ'ai quelques suggestions.Tout d'abord, j'essaierais d'abord de différencier votre variable de réponse, puis d'essayer à nouveau les forêts aléatoires.Pour moi, c'est l'approche la plus simple des données de séries chronologiques - et il est possible que les données se comportent mieux quand on les regarde de cette façon.Je créerais toujours manuellement l'ensemble de validation comme dernière période de temps plutôt qu'une sélection aléatoire de lignes.La deuxième idée est quelque chose que vous avez remarqué: il existe des regroupements temporels, tels que de multiples observations étroitement liées dans le temps.Vous pouvez envisager de rendre la séquence temporelle uniforme en résumant les observations étroitement liées dans le temps.Les séries chronologiques se comportent mieux si la variable de temps est mesurée uniformément, ce qui signifie que vos données devront être résumées dans des intervalles de temps espacés égaux.Comme vous le suggérez, il est temps de revenir à la réflexion sur ce qui est mesuré exactement et sur la façon dont on le mesure.
Re: modèle de déploiementSalut George et Dale
merci beaucoup pour vos réponses. Je regarde le diagramme de décalage de tous les prédicteurs et de la réponse et avec ma grande surprise, j'ai découvert une très longue autocorrélation (voir les images ci-jointes).
Puisque les données proviennent d'une fabrique de semi-conducteurs, la valeur 25 visible dans l'ACF est liée au nombre de plaquettes dans un lot.
La ligne de points à la place dans les tracés de décalage n'est que les premières plaquettes d'un lot différent chargées dans le macgine. Je pense que l'autocorrélation est due à un retour interne présent dans notre machine pour garder le point de travail. Bien sûr, ces ajustements sont cachés dans la chambre et ne sont pas sous notre contrôle et notre compréhension. La réponse montre également un décalage clair que je ne peux pas expliquer. Mais est-ce là.
J'ai essayé d'utiliser l'ingénierie des fonctionnalités de décalage, de moyenne mobile, de lissage et d'autres prédicteurs, mais les résultats continuent d'être vraiment mauvais.
Prochaine étape, je veux essayer la différenciation proposée par Dale. Pensez-vous que la simple différence X (t) -X (t-1) puisse être suffisante?
Ciao Felice
Re: modèle de déploiementLe graphique PACF suggère que les deux premiers décalages sont les plus pertinents - de loin, le premier décalage est le plus important.Donc, je pense qu'une simple différenciation de premier ordre serait une bonne chose à essayer.Il est possible que l'un des modèles d'apprentissage automatique (par exemple, RF, arbres boostés, réseaux neuronaux) fonctionne bien, alors je les essayerais.Mais vous devriez également essayer des modèles de séries chronologiques plus standard (où vous n'utiliseriez pas la différenciation, car les modèles de séries chronologiques sont construits pour tenir compte de l'autocorrélation de différentes manières).En théorie, si vous utilisez la différenciation de premier ordre (et si cela élimine en grande partie la structure temporelle), vous pouvez probablement utiliser un ensemble de test de validation de train aléatoire pour votre modélisation.Du moins, c'est ce que je pense - d'autres le savent peut-être mieux.