Étant donné une séquence d'entrées, je dois déterminer si cette séquence a une certaine propriété souhaitée. La propriété ne peut être vraie ou fausse, c'est-à-dire qu'il n'y a que deux classes possibles auxquelles une séquence peut appartenir.
La relation exacte entre la séquence et la propriété n'est pas claire, mais je pense qu'elle est très cohérente et devrait se prêter à une classification statistique. J'ai un grand nombre de cas sur lesquels former le classificateur, bien que cela puisse être légèrement bruyant, dans le sens où il y a une légère probabilité qu'une séquence soit affectée à la mauvaise classe dans cet ensemble de formation.
Exemples de données d'entraînement:
Sequence 1: (7 5 21 3 3) -> true
Sequence 2: (21 7 5 1) -> true
Sequence 3: (12 21 7 5 11 1) -> false
Sequence 4: (21 5 7 1) -> false
...
En gros, la propriété est déterminée par l'ensemble des valeurs de la séquence (par exemple, la présence d'un "11" signifie que la propriété sera presque certainement fausse), ainsi que par l' ordre des valeurs (par exemple "21 7 5 "augmente considérablement les chances que la propriété soit vraie).
Après l'entraînement, je devrais être en mesure de donner au classificateur une séquence précédemment invisible, comme (1 21 7 5 3)
, et il devrait produire sa confiance que la propriété est vraie. Existe-t-il un algorithme bien connu pour former un classificateur avec ce type d'entrées / sorties?
J'ai considéré le classificateur bayésien naïf (qui n'est pas vraiment adaptable au fait que l'ordre compte, du moins pas sans briser gravement l'hypothèse que les entrées sont indépendantes). J'ai également étudié l'approche du modèle de Markov caché, qui semble être inapplicable car une seule sortie est disponible, au lieu d'une sortie par entrée. Qu'est-ce que j'ai raté?
la source
Réponses:
Vous pouvez essayer des approches probabilistes similaires au classificateur naïf de Bayes mais avec des hypothèses plus faibles. Par exemple, au lieu de faire l'hypothèse d'indépendance forte, faites une hypothèse de Markov:
est votre étiquette de classe, x est votre séquence. Vous devez estimer deux distributions conditionnelles, une pour c = 1 et une pour c = 0 .c x c=1 c=0
Selon la règle de Bayes:
Les distributions à choisir pour dépendent des autres hypothèses que vous pouvez faire sur les séquences et de la quantité de données dont vous disposez.p(xt∣xt−1,c)
Par exemple, vous pouvez utiliser:
Avec des distributions comme celle-ci, s'il y a 21 nombres différents dans vos séquences, vous devez estimer paramètres π ( x t , x t , c ) plus 21 ⋅ 2 = 42 paramètres pour p ( x 0 ∣ c ) plus 2 paramètres pour p ( c ) .21⋅21⋅2=882 π(xt,xt,c) 21⋅2=42 p(x0∣c) 2 p(c)
Si les hypothèses de votre modèle ne sont pas remplies, cela peut aider à affiner les paramètres directement par rapport aux performances de classification, par exemple en minimisant la perte de log moyenne
en utilisant la descente de gradient.
la source
Je vous suggère de définir certaines fonctionnalités, puis de choisir un algorithme d'apprentissage automatique à appliquer à ces fonctionnalités.
Fonctionnalités: Fondamentalement, chaque fonctionnalité doit être quelque chose qui peut être calculée à partir d'une séquence particulière et qui, selon vous, peut être pertinente pour déterminer si la séquence a la propriété ou non. En fonction de votre description, vous pourriez envisager des fonctionnalités telles que les suivantes:
(7 5 21 3 3)
(7 5 21 3 3)
7 5
5 21
21 3
3 3
"Sac de trigrammes." Vous pouvez également envisager des trigrammes, qui sont une sous-séquence de trois nombres consécutifs de la séquence d'origine. Vous pouvez faire la même chose que ci-dessus.
la source
Ce que vous faites effectivement, c'est des tests d'hypothèses sur des séries chronologiques. Les HMM fonctionneraient pour vous, bien que vous deviez les adapter à votre cas particulier.
Honnêtement, si vous ne pouvez pas écrire une sorte de description mathématique de ce que vous essayez de détecter, vous n'irez pas très loin. Peut-être pouvez-vous nous dire quel type de fonctionnalité vous attendez?
la source
Étant donné une longueur maximale de 12 sur la séquence, un réseau de neurones avec 12 entrées et une sortie peut fonctionner, mais vous devrez remplir la fin de chaque séquence avec des zéros ou une valeur inerte.
la source
Avez-vous essayé d'utiliser des réseaux bayésiens? C'est la première chose à laquelle je pense lorsque j'ai besoin de fusionner plusieurs éléments de données (entrant un à la fois) pour arriver aux probabilités d'une variable aléatoire.
Les réseaux bayésiens ne reposent pas sur l'hypothèse d'indépendance que les Bayes naïfs font.
BTW, les modèles de Markov cachés sont un cas particulier des réseaux bayésiens.
la source