Approche bayésienne de l'apprentissage automatique pour la réponse de BernoulliJ'ai un ensemble de données où j'ai environ 2000 observations d'environ 150 entités ou covariables. J'essaie de prédire un résultat 0/1. Le résultat est un score de risque pour la maladie, R1. Le test génère toutes les valeurs de caractéristiques (F1, ..., F150) d'une base de données, ainsi qu'une valeur de risque pour une maladie apparentée (R0). L'idée est que R0 est très prédictif pour R1 et que, si nous utilisons les fonctionnalités F1, ..., F150, nous pourrions avoir une sorte de règle de mise à jour que nous pouvons appliquer à R0. Autrement dit, je pense utiliser R0 comme paramètre de Bernoulli pour une distribution antérieure de R1 et, en quelque sorte, d’entraîner une formule de mise à jour à utiliser sur R0 en fonction des valeurs de F1, ..., F150.
L'algorithme d'apprentissage devrait permettre de construire un modèle de score de probabilité 0/1 permettant de spécifier une valeur antérieure pour le score. Cela ressemble à un problème bayésien plutôt direct. Mais je ne l'avais pas fait auparavant et je ne sais pas comment les informations sur les fonctionnalités seraient incorporées dans l'expression de mise à jour des paramètres.
Générerions-nous un deuxième score de probabilité?
Utiliserions-nous le prédicteur linéaire avant de passer à la transformation logit?
Est-ce que nous modifierions R0 de manière additive ou par un facteur de multiplication?
Clairement, j'ai plus de questions que de réponses. Si quelqu'un pouvait me diriger dans la bonne direction, ce serait formidable. Si JMP permet ce genre de chose, j'aimerais en entendre parler.
Re: approche bayésienne de l'apprentissage automatique pour la réponse de BernoulliOui, 100% des fonctionnalités sont utilisées pour calculer p0. Le système génère en réalité des milliers de fonctionnalités, mais nous devions être en mesure de valider l'algorithme de calcul de p0 hors ligne. Nous avons donc trouvé (en lisant le code) chaque fonctionnalité utilisée pour calculer p0 et les avons enregistrées. Remarquez, le "calcul" de p0 en fonction des fonctionnalités est trop complexe et implicite pour vous permettre de l'écrire (des centaines de classificateurs binaires dans des configurations en parallèle et en série, je n'ai pas construit le système). Mais nous savons que nous avons capturé toutes les feratures nécessaires et suffisantes pour effectuer une simulation hors ligne et valider le calcul de p0.
Mon objectif n'est pas de modifier le modèle de calcul de p0. Il s'agit de voir si, par hasard, les mêmes caractéristiques pourraient contenir des informations "magiques" nous permettant de prédire une autre maladie. Ma pensée est peu probable, surtout que les caractéristiques ont été générées spécifiquement pour prédire de manière optimale et minimale D0. Il existe probablement des moyens théoriques d’information pour tester cette hypothèse.
Encore une fois, je dois proposer une méthode juste et fondée sur des principes pour montrer que le concept ne fonctionnera tout simplement pas ou qu’il fonctionnera. Il a été facile de générer beaucoup de drapeaux rouges (dérive de covariable par exemple). Ma tentative d'utiliser une sorte d'approche «bayésienne» modifiée est ma façon d'utiliser les meilleures statistiques que les fonctionnalités ont été conçues pour générer, puis de voir s'il existe des informations résiduelles indépendantes pouvant Aidez-moi prédire D1. Je suis sceptique, mais je fais partie d'un groupe où d'autres (la direction) ont une vision dogmatique selon laquelle l'apprentissage automatique peut résoudre comme par magie tout problème imaginable. Ils n'apprécient pas que la plupart de ces modèles (LASSO, Ridge, PLS) ne sont en fin de compte que de simples modèles linéaires à effets principaux (généralisés).
Encore une fois, j'apprécie votre engagement. Ce fut très utile.
Re: approche bayésienne de l'apprentissage automatique pour la réponse de BernoulliJe suis un peu confus - vous dites que votre modèle utilise 100% des fonctionnalités (150 d'entre elles!). Pratiquement tous les modèles d’apprentissage automatique que j’ai exécutés n’utilisent jamais toutes les fonctionnalités. Vous pouvez les entrer tous autant que possible, mais rarement (jamais) tous s'habituent. Dans tous les cas, si vous pensez que votre modèle est trop complexe, vous pouvez supprimer chaque fonctionnalité (fastidieuse, mais quelqu'un peut probablement aider à écrire ce script) individuellement pour voir à quel point la performance diminue. Une autre version de ce logiciel - que j'ai déjà vue dans d'autres logiciels mais pas encore dans JMP - consiste à remplacer chaque fonctionnalité (une à la fois) par des données aléatoires et à comparer les performances.
Vous semblez également vouloir voir si vous pouvez obtenir de meilleures prévisions en ajoutant quelque chose au modèle que vous avez déjà (que reste-t-il à ajouter si toutes les fonctionnalités y sont déjà?). Je pense qu'il y a plusieurs façons de le faire - mais je pense plus à essayer différents modèles et à utiliser une méthode d'ensemble pour les combiner, plutôt que d'utiliser des fonctionnalités supplémentaires. La méthode du modèle bayésien est un moyen de le faire. Mais votre idée originale d'utiliser votre premier modèle en tant qu'ancien, puis d'ajouter des fonctionnalités pour produire une "mise à jour bayésienne" n'a toujours aucun sens pour moi.
Re: approche bayésienne de l'apprentissage automatique pour la réponse de BernoulliMerci Dale,
Je suis probablement tout à fait d'accord avec vous. Le but du projet est de voir si les caractéristiques, déjà utilisées pour s'entraîner à J0, pourraient contenir des informations "orthogonales" pouvant être utilisées pour prédire J1. Retraité, le bruit dans le modèle d'origine pour p0, qui est un modèle incroyablement complexe basé à 100% sur les fonctionnalités, contient toutes les informations pouvant être utilisées pour entraîner P1. Je souhaite conserver l’estimation initiale de p0 car elle s’est déjà révélée très utile pour D0.
Si j'utilise simplement quelque chose comme LASSO (ou crête ou PLS ou ...) pour former un modèle pour p1 basé sur les fonctionnalités, j'obtiens de meilleures performances que de prédire D1 en utilisant uniquement p0. Mais je suis sceptique de pouvoir m'entraîner inconsciemment au bruit avec tous les CV en cours. De plus, des expériences indépendantes ont démontré que le modèle de p1 souffre d'un décalage de covariable alors que p0 résiste bien à différents ensembles de données.
Bien sûr, il me revient de donner un coup de pouce au concept de whoe et je veux donc défier simultanément le concept et lui donner les meilleures chances. C'est pourquoi je me penche vers cette approche "bayésienne". Je suis d’accord pour dire que c’est un peu exagéré, car nous n’observons pas un événement de Bernoulli, nous ne pouvons que regarder les prédicats d’un modèle pour le paramètre précédent.
J'apprécie vos pensées.
Re: approche bayésienne de l'apprentissage automatique pour la réponse de BernoulliJe ne suis en aucun cas un expert bayésien, mais il me semble que ce que vous voulez faire n'est pas correct. La mise à jour bayésienne consiste généralement à intégrer de nouvelles informations, telles que des points de données supplémentaires. Pourquoi ajouter des fonctionnalités supplémentaires? Il suffit de les mettre dans votre modèle d'origine. Ou, si vous utilisez quelque chose comme des arbres boostés, l'algorithme utilisera déjà les fonctionnalités pour "mettre à jour" ses prédictions en fonction du degré de classification incorrecte. En d'autres termes, je pense que vous suggérez un appareil qui pourrait apparaître "bayésien", mais en fait, il s'agit simplement d'examiner dans quelle mesure chaque caractéristique contribue au modèle, compte tenu des autres caractéristiques du modèle. C’est essentiellement ce que tous les modèles prédictifs font tels quels: laisser certaines fonctionnalités de côté et les ajouter ensuite pour voir à quoi ressemble le changement de prédiction, comme si on faisait simplement ce que les modèles prédictifs font automatiquement.
S'il vous plaît, si je me trompe à ce sujet, quelqu'un me redresser la tête.