[PYTHON] Paquet réseau Basian ~ Exécution du tutoriel Pebl ~

La dernière fois, il y avait une histoire sur l'utilisation de la chaîne de Markov dans le modèle d'attribution, alors je l'ai touchée facilement. Il semble que certains modèles d'attribution utilisent le réseau Basian, je voudrais donc vérifier le package et l'utilisation de celui-ci. Consultez les différents articles et livres sur le réseau Basian lui-même. Vous pouvez rechercher par le réseau Basian lui-même, ou vous pouvez trouver des éléments liés dans le modèle graphique.

Paquet Python

Il semble qu'il y en ait deux. Tout d'abord, j'aimerais le voir en utilisant Pebl. Pebl

Installation

OS: Ubuntu16.0.4


anaconda: 3-4.1.0
python: 2.7.12
pydot: 1.0.28
numpy: 1.11.1```
 est.

 J'ai installé les packages suivants liés à l'unité principale.
```pip install pebl
conda install Graphviz
pip install simple_json```
 * Nose_test n'a pas réussi, mais le tutoriel a pu être exécuté.
### Des données d'utilisation
 Je voudrais vérifier les exemples de données en regardant le [Tutoriel sur la page officielle](http://pythonhosted.org/pebl/tutorial.html).
 De là, DL "pebl-tutorial-data1.txt" et stockez-le dans le répertoire à exécuter.
 Ce sont les données de test du système génomique, qui semblent être les données de 76 lignes et 12 colonnes. Malheureusement, je n'ai pas compris les noms des colonnes.
### Exemple d'exécution
 Exécutez ensuite les données de test du didacticiel.
 J'ai eu l'erreur suivante avec la commande ʻex1result.tohtml ("exemple1-result") ʻ dans le premier exemple.

#### **`/home/usrname/.pyenv/versions/anaconda3-4.1.0/envs/py27/lib/python2.7/site-packages/pebl/network.pyc in layout(self, width, height, dotpath)`**
287         dotgraph = pydot.graph_from_dot_file(dot2)
288         nodes = (n for n in dotgraph.get_node_list() if n.get_pos())
--> 289         self.node_positions = [[int(i) for i in n.get_pos()[1:-1].split(',')] for n in nodes]
290
291 ```

Il semble que la cause de l'erreur soit que la virgule flottante de la chaîne de caractères (telle que «99 .9») soit placée dans int (). Je ne peux pas m'en empêcher, j'ai donc modifié la ligne correspondante. Il y avait une possibilité que la sortie soit légèrement différente de celle de référence, mais j'ai pu l'exécuter.

Changer avant) self.node_positions = [[int(i) for i in n.get_pos()[1:-1].split(',')] for n in nodes]


 (Après changement) self.node_positions = [[int (round (i)) for i in n.get_pos () [1: -1] .split (',')] for n in nodes] `` `

 Le didacticiel s'est retourné et le fichier html a été généré.
 Log Score etc. est sorti, mais je ne peux pas le lire à moins de comprendre la signification de cette zone, je dois donc vérifier cette zone également. .. ..


Recommended Posts

Paquet réseau Basian ~ Exécution du tutoriel Pebl ~
[Go] Test d'exécution / construction / package
pgmpy: Essai de réseau de bassins discrets jusqu'à l'inférence
Tutoriel sur le réseau neuronal (CNN) de Pytorch 1.3.1.