[PYTHON] Basian Network Package ~ Ausführung des Pebl-Tutorials ~

Das letzte Mal gab es eine Geschichte über die Verwendung der Markov-Kette im Attributionsmodell, daher habe ich sie leicht berührt. Es scheint, dass einige Attributionsmodelle das basianische Netzwerk verwenden, daher möchte ich das Paket und dessen Verwendung überprüfen. Lesen Sie die verschiedenen Artikel und Bücher im Basian Network. Sie können nach dem basianischen Netzwerk selbst suchen oder verwandte im grafischen Modell finden.

Python-Paket

Es scheint, dass es diese beiden gibt. Zunächst möchte ich es mit Pebl sehen. Pebl

Installation

OS: Ubuntu16.0.4


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

 Ich habe die folgenden Pakete für das Hauptgerät installiert.
```pip install pebl
conda install Graphviz
pip install simple_json```
 * Nose_test wurde nicht bestanden, aber das Tutorial konnte ausgeführt werden.
### Nutzungsdaten
 Ich möchte die Beispieldaten überprüfen, während ich mir das [Tutorial auf der offiziellen Seite](http://pythonhosted.org/pebl/tutorial.html) ansehe.
 Von dort DL "pebl-tutorial-data1.txt" und speichern Sie es in dem Verzeichnis, das ausgeführt werden soll.
 Dies sind die Testdaten des Genomsystems, bei denen es sich anscheinend um Daten von 76 Zeilen und 12 Spalten handelt. Leider habe ich die Spaltennamen nicht verstanden.
### Ausführungsbeispiel
 Führen Sie dann die Testdaten des Lernprogramms aus.
 Ich habe den folgenden Fehler mit dem Befehl "ex1result.tohtml (" example1-result ")" im ersten Beispiel erhalten.

#### **`/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 ```

Es scheint, dass die Ursache des Fehlers darin besteht, dass der Gleitkomma der Zeichenfolge (z. B. '99 .9 ') in int () eingefügt wird. Ich kann nicht anders, also habe ich Änderungen an der entsprechenden Zeile vorgenommen. Es bestand die Möglichkeit, dass sich die Ausgabe geringfügig von der Referenzausgabe unterscheidet, aber ich konnte sie ausführen.

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


 (Nach Änderung) self.node_positions = [[int (round (i)) für i in n.get_pos () [1: -1] .split (',')] für n in Knoten] `` `

 Das Tutorial drehte sich um und die HTML-Datei wurde ausgegeben.
 Log Score usw. wurde veröffentlicht, aber ich kann es nur lesen, wenn ich die Bedeutung dieses Bereichs verstehe. Daher muss ich auch diesen Bereich überprüfen. .. ..


Recommended Posts

Basian Network Package ~ Ausführung des Pebl-Tutorials ~
[Go] Ausführung / Build / Pakettest
pgmpy: Versuch eines diskreten Beckennetzwerks bis zur Schlussfolgerung
Tutorial zum neuronalen Netz von Pytorch (CNN) 1.3.1.