Ce genre d'algorithme est derrière le Akinator jeu?
Il toujours étonné moi comment le Akinator app pouvait deviner un personnage en posant plusieurs questions. Alors je me demande ce genre d'algorithme ou méthode de le laisser faire ça? Est-il un nom pour la classe d'algorithmes et où puis-je en savoir plus?
OriginalL'auteur Desmond Hume | 2012-11-30
Vous devez vous connecter pour publier un commentaire.
Oui, il y a un nom pour ces classe d'algorithmes - il est appelé les algorithmes de classification dans le domaine de la l'apprentissage de la machine. Les arbres de décision est un exemple d'algorithme de classification.
Dans ce problème de classement, les caractéristiques de l'algorithme sont les réponses à la question.
De décider de la question à laquelle doit être demandé suivant peut être fait de différentes manières, par exemple en essayant de maximiser le prédit (ou moyenne) l'entropie à partir de la question suivante.
Théoriquement oui, mais rappelez-vous qu'il y a du "bruit" les gens pourraient erreur ou de donner une signification différente (fortement d'accord/faiblement d'accord) à la même question. (C'est pourquoi la plaine de recherche binaire échoue dans ces cas, et vous avez besoin de quelque chose qui est plus basé sur les statistiques, ce qui est exactement ce que les algorithmes de classification visant à faire)
le nombre de permutations doivent être
5^8
pas8^5
, cependant, il ya seulement deux options qui ne sont pas cinq. "Ne sais pas", c'est ignorer une question et le "probablement" les variantes ne sont que de faire du "oui" et "non" les réponses les plus faibles. Ainsi, le nombre de permutations pour 8 questions est seulement2^8
qui est256
.Nous obtenons façon hors sujet - mais il n'y a aucune raison d'ignorer "je ne sais pas" ou utiliser "probablement" de même que "oui". Par exemple, pensez à la question "votre personnage jamais modélisé" - Un "je ne sais pas" réponse sera aider à l'agent de vous identifier ne sont probablement pas parler de Bar Refaeli.
Je sais qu'il ya une raison, mais dans la section de l'analyse lorsque vous remplissez un "jeu", vous pouvez voir que Akinator n'en fait ignorer "ne sait pas" des réponses et qu'il a seulement "Oui" et "Non" réponses enregistrées.
OriginalL'auteur amit
Ce jeu est parfois connu comme 20 Questions. Il y a quelques questions sur tant sur, par exemple:
OriginalL'auteur ziggystar
Caractéristiques principales de l'algorithme:
Akinator jeu algorithme modèle est appelé "système Expert basé sur la logique Floue".
Et ce n'est PAS les arbres de Décision, car il pas d'erreurs, d'indulgence.
J'avais un il y a quelques temps sur le C#, vous pouvez le trouver en lien: https://github.com/ukushu/AkinatorEngine
OriginalL'auteur Andrew
Je pense que c'est comme un système expert, avec B-structure de l'Arbre.
OriginalL'auteur Zaher Joukhadar
Je ne sais pas ce qu'est exactement l'algorithme de Akinator utilise, mais ici j'ai mis de l'open-source c'est un algorithme qui permet d'obtenir le même effet: https://github.com/srogatch/ProbQA
Générale, nous utilisons un cube de
N(Questions)
foisN(Answer Options)
foisN(Targets)
, voir https://github.com/srogatch/ProbQA/blob/master/ProbQA/PqaCore/CpuEngine.decl.h .Nous formons le cube en appliquant Bayésien formule avec l'hypothèse d'indépendance, voir https://github.com/srogatch/ProbQA/blob/master/ProbQA/PqaCore/CEEvalQsSubtaskConsider.cpp
Parce que le code est optimisé pour le AVX2 et multi-threading, il peut être difficile à lire. Il peut être plus facile à lire le code CUDA pour la même chose: https://github.com/srogatch/ProbQA/blob/master/ProbQA/PqaCore/CudaEngineGpu.cu
Une application de cet algorithme est également disponible comme un site à recommander un jeu.
OriginalL'auteur Serge Rogatch