Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:dydaktyka:dss:lab02 [2020/10/18 18:08] kkluza [Requirements] |
pl:dydaktyka:dss:lab02 [2020/10/18 19:42] (aktualna) kkluza [Excercise] |
| |
The codes in this lab instruction are based on the codes from the book \\ | The codes in this lab instruction are based on the codes from the book \\ |
[[https://www.springer.com/gp/book/9783319564272|A Primer on Process Mining. Practical Skills with Python and Graphviz]]. | [[https://www.springer.com/gp/book/9783319564272|A Primer on Process Mining. Practical Skills with Python and Graphviz]]. \\ The codes are not optimized and they are supposed to show a step by step process mining solution. |
The codes are not optimized and they are supposed to show a step by step process mining solution. | |
===== Implementing a simple heuristic miner ===== | ===== Implementing a simple heuristic miner ===== |
| |
Using the following excerpt of code import a {{ :pl:dydaktyka:dss:lab:repairexample.txt |repairexample.xes}} file into your Python script: | Using [[https://opyenxes.readthedocs.io/en/latest/_modules/opyenxes/data_in/XUniversalParser.html|XUniversalParser]] in the following excerpt of code, import a {{ :pl:dydaktyka:dss:lab:repairexample.txt |repairexample.xes}} file into your Python script: |
| |
<code python> | <code python> |
<code python> | <code python> |
text = event + ' (' + str(ev_counter[event]) + ")" | text = event + ' (' + str(ev_counter[event]) + ")" |
G.add_node(event, label=text, style="rounded,filled", fillcolor="#ffffcc") | G.add_node(event, label=text, style="rounded,filled", fillcolor="#ffffcc") # code for Pygraphviz |
</code> | </code> |
| |
We can also change the transparency of the discovered tasks based on their frequencies: | We can also change the transparency of the discovered tasks based on their frequencies (code for Pygraphviz, so for graphviz, it should be adjusted): |
| |
<code python> | <code python> |
| |
Extend process discovery with additional features: | Extend process discovery with additional features: |
* Try to discover frequency of each transition (flow) and render the number of occurrences both as a label and the thickness of the line. | - Try to discover the frequency of each transition (flow) and render the number of occurrences both as a label and the thickness of the line. |
* Add some filtering option to show or hide tasks or flows according to the chosen threshold. | - Add some filtering option to show or hide tasks or flows according to the chosen threshold. |
* 8-o Only for advanced students: Try to implement and discover relations according to the Alpha algorithm. | - Optimize code by avoiding creating additional lists, e.g. using ''itertools'', ''more_itertools'' or other Python tools. |
| - 8-o Only for interested students: Try to implement and discover relations according to the Alpha algorithm. |
| |
<fc #ff0000>There is no report needed after this lab.</fc> But if you implemented some cool solution or you used different libraries for solving a problem, you will be able to present your work during the next class and get some additional (extra) points. ^_^ | <fc #ff0000>There is no report required after this lab.</fc> However, it is possible to submit an additional report for 5 points (for a very good score) presenting the implementation of at least two of the above exercises. |