Il peut y avoir des erreurs, donc si vous en trouvez une, veuillez la signaler.
Cette fois, je voudrais présenter l'idée de Bayes, qui est une idée inévitable dans l'apprentissage automatique. L'explication est décrite sur la base de l'article suivant.
référence: https://github.com/markdregan/Bayesian-Modelling-in-Python
1: Pensée bayésienne 2: Découvrez la théorie bayésienne en utilisant le notebook ipython 3: Méthode d'évaluation du modèle optimisée à l'aide de la théorie bayésienne
Le but de l'apprentissage automatique est d'apprendre des modèles à partir de données et de traiter des données inconnues, mais des données parfaites sont
"Complet, cohérent, correct et descriptif"
De tels cas sont extrêmement rares, il est donc proche de l'idée de donner des connaissances à l'avance afin qu'il ne soit pas facilement affecté par des données étranges.
Je pense que les êtres humains feront également des prédictions et agiront lorsqu'ils feront quelque chose pour améliorer leur rétroaction.
Cependant, si vous faites une erreur à l'avance, vous aurez de mauvais résultats, alors soyez prudent.
Par exemple, je veux trouver un restaurant de viande pour les femmes (basé sur le dogmatisme et les préjugés)
- Femmes au début de la vingtaine: emmenez-les dans un magasin à la mode inexpérimenté ou dans un magasin qui propose des choses que vous ne feriez pas normalement l'expérience.
- Femmes à la fin de la vingtaine: les magasins à la mode sont épuisés dans une certaine mesure, il est donc difficile de rechercher simplement des magasins à la mode. Ce serait bien d'avoir une boutique cachée ou une boutique préférée
De cette façon, même si vous allez chez une femme, la distribution antérieure diffère selon l'âge, donc si vous vous trompez dans cette distribution antérieure, ce sera ridicule.
Cette fois, au lieu de suivre les formules mathématiques, la version anglaise était un tutoriel pour comprendre les idées de Bayes en utilisant des données réelles, je vais donc les traduire en japonais dans le cadre de mon étude et laisser un mémorandum de pratique.
Puisque le chapitre 3 et les versions ultérieures sont des contenus avancés, si vous le limitez au chapitre 2, vous pouvez tout faire, de la création du modèle à l'évaluation.
Si vous êtes intéressé par l'histoire principale, veuillez voir ci-dessous
https://github.com/markdregan/Bayesian-Modelling-in-Python
Dans ce didacticiel, vous obtenez vos propres données Google Hangout. L'acquisition des données prend du temps, il est donc recommandé d'acquérir les données tout en effectuant d'autres travaux.
Si vous ne disposez pas d'un environnement python, vous pouvez télécharger les bibliothèques nécessaires en utilisant require.txt
ci-dessous.
numpy==1.9.2
ipython==4.0.0
notebook==4.0.4
jinja2==2.8
pyzmq==14.7.0
tornado==4.1
matplotlib
simplejson
pandas
seaborn
datetime
scipy
patsy
statsmodels
git+https://github.com/pymc-devs/pymc3
Je l'ai essayé dans un environnement OSX, mais j'ai eu l'erreur suivante.
RuntimeError**: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python as a framework, or try one of the other backends.
La méthode correspondante est la suivante.
http://stackoverflow.com/questions/21784641/installation-issue-with-matplotlib-python
L'imbrication du fichier json obtenu est incroyable, voici donc quelques brèves informations sur les champs de données.
Field | Description | Example |
---|---|---|
conversation_id | Conversation id representing the chat thread | Ugw5Xrm3ZO5mzAfKB7V4AaABAQ |
participants | List of participants in the chat thread | [Mark, Peter, John] |
event_id | Id representing an event such as chat message or video hangout | 7-H0Z7-FkyB7-H0au2avdw |
timestamp | Timestamp | 2014-08-15 01:54:12 |
message | Content of the message sent | Went to the local wedding photographer today |
sender | Sender of the message | Mark Regan |
Le didacticiel analyse les données de json et les traduit dans le cadre de données de Pandas pour chaque message.
Veuillez noter que le code ci-dessous restreint les données à l'auteur et à Alison Darcy, vous n'obtiendrez donc pas les données à moins que vous ne commentiez ici.
messages = messages[(messages['sender'] == 'Mark Regan') & (messages['participants_str'] != 'Alison Darcy, Mark Regan')]
1: Le temps de réponse affecte la personne à qui vous parlez 2: Quels facteurs affectent le temps de réponse? 3: Quel est le pire jour?
Dans mon cas, je n'utilise pas beaucoup Google Hangout, j'ai donc obtenu le résultat suivant.
Cette fois, je ne peux pas l'utiliser pour le problème que je souhaite résoudre, j'ai donc décidé d'utiliser les données du tutoriel.
Voici la partie principale du tutoriel Baysian. Il est intéressant de noter que les résultats sont faciles à comprendre à l'aide de diagrammes.
Tout d'abord, je décrirai l'idée de Basian. Par exemple:
Le garçon compte le nombre de voitures qui passent devant sa maison chaque jour et les écrit dans son carnet. Son carnet décrit le nombre de voitures passées.
Selon Bayes, les données observées se produisent au hasard, mais je pense que cela se produit avec une distribution de probabilité.
Pour les cas discrets comme l'exemple, envisagez d'utiliser la distribution de Poisson.
L'exemple montre des cas avec une moyenne de 5,20,40.
Le vert est une distribution de probabilité avec une moyenne de 5, l'orange est une distribution de probabilité avec une moyenne de 20 et le rose est une distribution de probabilité avec une moyenne de 40.
En appliquant le temps de la réponse précédente au cadre de la distribution de Poisson et en prédisant les paramètres avec Bayes, nous essayons de résoudre la question qui s'est posée cette fois.
La valeur moyenne de la distribution de Poisson est estimée par l'estimation la plus probable (logarithmique). La probabilité de cette estimation et la valeur moyenne de la distribution de Poisson à estimer peuvent être confirmées ci-dessous.
On peut confirmer que la valeur moyenne est proche de 20 et la probabilité est la plus élevée. La distribution de Poisson du temps de réponse est la suivante, et elle est le plus souvent renvoyée en 18 secondes.
L'information connue à l'avance pour appliquer Bayes dans cet exemple est que les données sont comprises entre 10 et 60. Le sujet est de définir sa distribution de Poisson et de l'obtenir par l'estimation la plus probable.
MCMC
Il s'agit d'une technique qui change la valeur moyenne de ce temps en données et la répète jusqu'à ce que la valeur maximisant la probabilité soit atteinte. Le bon point de cette méthode est que même s'il n'y a pas de données, il est possible de déterminer les paramètres à estimer à partir de la distribution précédente et d'estimer les valeurs au hasard, et de s'arrêter lorsque la vraisemblance est maximisée.
Cependant, il existe des inconvénients en ce qu'il est difficile de converger lorsqu'il y a de nombreux paramètres à estimer, et il est difficile d'exercer l'effet lorsque la distribution antérieure n'est pas appropriée.
Si vous l'exécutez avec ipython notebook, vous pouvez voir le processus d'estimation des paramètres lors de la génération des données, alors essayez-le et voyez comment cela fonctionne.
C'est le résultat réellement estimé par MCMC. Les données se sont produites entre 17 et 19, et la valeur moyenne était un peu plus de 18, donc c'est aussi précis qu'une simple estimation bayésienne.
La trajectoire de la probabilité maximisée par MCMC peut être confirmée ci-dessous. Étant donné que la valeur moyenne estimée ne converge pas toujours comme prévu, vous pouvez vérifier de quel type de transition il s'agit en vérifiant cette trace.
Il est également nécessaire de comprendre le coefficient de corrélation entre la valeur sortie dans l'échantillon et la valeur sortie jusqu'à présent.
Il y a deux points à vérifier
1: Le modèle représente-t-il des données? 2: Comparaison des modèles
Vérifions les données et la distribution prévue. La valeur la plus fréquente de la distribution et le temps de réponse le plus fréquent ne correspondent pas. Il s'avère que ce modèle ne convient pas dans ce cas.
Par conséquent, si nous utilisons une distribution binomiale négative qui est relativement similaire à la distribution de Poisson, nous pouvons gérer non seulement la moyenne mais aussi la variance, alors remplaçons-la.
La distribution est similaire à celle illustrée ci-dessous.
La distribution binomiale négative estime les paramètres α et μ comme indiqué ci-dessous.
Les valeurs prédites sont les suivantes, α vaut de 1,4 à 2,4 et le pouvoir expressif de la distribution est amélioré par le rôle de la dispersion.
Voici un diagramme de la distribution et du temps de réponse créés à l'aide des paramètres α et μ estimés précédemment. La distribution est similaire à la distribution du temps de réponse et est plus caractéristique.
Une combinaison de distributions binomiales de Poisson et négatives a également été proposée.
Il précise qu'il calcule le facteur bayésien et décide quel modèle utiliser en fonction des critères ci-dessous.
Cette fois, nous avons fait les bases jusqu'au chapitre 2, mais puisque le chapitre 3 sera une version avancée, veuillez défier.
https://github.com/markdregan/Bayesian-Modelling-in-Python/blob/master/Section%203.%20Hierarchical%20modelling.ipynb
Pakutaso https://www.pakutaso.com/
Apprenez la modélisation statistique avec Stan (2): Qu'est-ce que MCMC en premier lieu? http://tjo.hatenablog.com/entry/2014/02/08/173324
Des connaissances pour faire semblant de connaître les estimations bayésiennes http://www.anlyznews.com/2012/01/blog-post_31.html
Bayesian-Modelling-in-Python https://github.com/markdregan/Bayesian-Modelling-in-Python
Le fonctionnement du pilote de volume DRBD Cinder confirmé avec OpenStack LIBERTY par tksarah !!
Recommended Posts