From b610124ae365de143143fbc63fe079300845b46d Mon Sep 17 00:00:00 2001 From: AntonChern Date: Tue, 1 Oct 2024 14:16:00 +0300 Subject: [PATCH] Add examples for GFD mining Added two examples with searching for dependencies in small graphs. --- .../mining_gfd/figures/gfds/blogs_gfd.png | Bin 0 -> 6570 bytes .../mining_gfd/figures/gfds/study_gfd.png | Bin 0 -> 8982 bytes .../mining_gfd/figures/graphs/blogs_graph.png | Bin 0 -> 39459 bytes .../mining_gfd/figures/graphs/study_graph.png | Bin 0 -> 40662 bytes examples/basic/mining_gfd/mining_gfd1.py | 69 ++++++++++++++++++ examples/basic/mining_gfd/mining_gfd2.py | 67 +++++++++++++++++ examples/datasets/mining_gfd/blogs_graph.dot | 27 +++++++ examples/datasets/mining_gfd/study_graph.dot | 34 +++++++++ 8 files changed, 197 insertions(+) create mode 100644 examples/basic/mining_gfd/figures/gfds/blogs_gfd.png create mode 100644 examples/basic/mining_gfd/figures/gfds/study_gfd.png create mode 100644 examples/basic/mining_gfd/figures/graphs/blogs_graph.png create mode 100644 examples/basic/mining_gfd/figures/graphs/study_graph.png create mode 100644 examples/basic/mining_gfd/mining_gfd1.py create mode 100644 examples/basic/mining_gfd/mining_gfd2.py create mode 100644 examples/datasets/mining_gfd/blogs_graph.dot create mode 100644 examples/datasets/mining_gfd/study_graph.dot diff --git a/examples/basic/mining_gfd/figures/gfds/blogs_gfd.png b/examples/basic/mining_gfd/figures/gfds/blogs_gfd.png new file mode 100644 index 0000000000000000000000000000000000000000..06caee82a845b97316ef6c2463f6236bec449305 GIT binary patch literal 6570 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 JQpPm!e*pHdgA@P& literal 0 HcmV?d00001 diff --git a/examples/basic/mining_gfd/figures/gfds/study_gfd.png b/examples/basic/mining_gfd/figures/gfds/study_gfd.png new file mode 100644 index 0000000000000000000000000000000000000000..c193d9ef0df3c0d047fa208e14fe884ca1a708b3 GIT binary patch literal 8982 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 literal 0 HcmV?d00001 diff --git a/examples/basic/mining_gfd/figures/graphs/blogs_graph.png b/examples/basic/mining_gfd/figures/graphs/blogs_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..1f5167572fb90270422d5bab8c18893e6c8426ba GIT binary patch literal 39459 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 Yr`uevb!QZM|9M(!O4-QJj5BGlP>Z;RK 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 rJm {bcolors.ENDC}', end='') + print('Mined GFDs:', len(algo.get_gfds())) + print() + + +def show_example(): + _, axarr = plt.subplots(1, 2, figsize=(12, 5), gridspec_kw={'width_ratios': [7, 3], 'wspace': 0.5}) + axarr[0].set_axis_off() + axarr[0].set_title('$Graph$') + axarr[0].imshow(mpimg.imread(GRAPH_IMAGE)) + axarr[1].set_axis_off() + axarr[1].set_title('$Mined$ $GFD$') + axarr[1].imshow(mpimg.imread(GFD_IMAGE)) + plt.show() + + +print(GRAPH_INFO) +print(INFO) +execute_algo(desbordante.gfd_mining.algorithms.GfdMiner()) +print(RESULTS) +print(EXIT) + +show_example() diff --git a/examples/basic/mining_gfd/mining_gfd2.py b/examples/basic/mining_gfd/mining_gfd2.py new file mode 100644 index 0000000000..671123a2f6 --- /dev/null +++ b/examples/basic/mining_gfd/mining_gfd2.py @@ -0,0 +1,67 @@ +from pathlib import Path + +import desbordante +import matplotlib.pyplot as plt +import matplotlib.image as mpimg + + +class bcolors: + HEADER = '\033[95m' + WARNING = '\033[93m' + ENDC = '\033[0m' + + +GRAPH_NAME = 'study_graph' +GFD_NAME = 'study_gfd' + +GRAPHS_DATASETS_FOLDER_PATH = 'examples/datasets/mining_gfd' + +GRAPH = Path(f'{GRAPHS_DATASETS_FOLDER_PATH}/{GRAPH_NAME}.dot') + +GRAPH_IMAGE = Path(f'examples/basic/mining_gfd/figures/graphs/{GRAPH_NAME}.png') +GFD_IMAGE = Path(f'examples/basic/mining_gfd/figures/gfds/{GFD_NAME}.png') + +GRAPH_INFO = ('Figure provides an example of a graph. ' + 'The following abbreviations were used here: T - task, S - student. ' + 'The vertices with the T-label have the attributes "name" and "difficulty"' + ', the vertices with the S-label have the "name", "degree" and "year" ' + 'attributes, which indicate the student\'s name, level of education and year. ' + 'The values of these attributes are signed next to the vertices, except for ' + 'the name, since it is not informative.\n') + +INFO = ("Let's run the algorithm. We'll specify 2 as the k parameter to look for patterns " + "with no more than two vertices, and we'll specify 3 as the sigma to exclude " + "rare dependencies.\n") + +RESULTS = ("The dependency found indicates that only second-year master's students are " + "working on the hard task.\n") + +EXIT = f'{bcolors.WARNING}Close the image window to finish.{bcolors.ENDC}' + + +def execute_algo(algo): + algo.load_data(graph=GRAPH, gfd_k=2, gfd_sigma=3) + algo.execute() + print(f'{bcolors.HEADER}Desbordante > {bcolors.ENDC}', end='') + print('Mined GFDs:', len(algo.get_gfds())) + print() + + +def show_example(): + _, axarr = plt.subplots(1, 2, figsize=(12, 5), gridspec_kw={'width_ratios': [7, 3], 'wspace': 0.5}) + axarr[0].set_axis_off() + axarr[0].set_title('$Graph$') + axarr[0].imshow(mpimg.imread(GRAPH_IMAGE)) + axarr[1].set_axis_off() + axarr[1].set_title('$Mined$ $GFD$') + axarr[1].imshow(mpimg.imread(GFD_IMAGE)) + plt.show() + + +print(GRAPH_INFO) +print(INFO) +execute_algo(desbordante.gfd_mining.algorithms.GfdMiner()) +print(RESULTS) +print(EXIT) + +show_example() diff --git a/examples/datasets/mining_gfd/blogs_graph.dot b/examples/datasets/mining_gfd/blogs_graph.dot new file mode 100644 index 0000000000..9edd0b7314 --- /dev/null +++ b/examples/datasets/mining_gfd/blogs_graph.dot @@ -0,0 +1,27 @@ +graph G { +0[label=blog author=Leonardo]; +1[label=blog author=Raphael]; +2[label=blog author=Donatello]; +3[label=blog author=Michelangelo]; +4[label=blog author=Donatello]; +5[label=blog author=Michelangelo]; +6[label=blog author=Donatello]; +7[label=account name=Leonardo]; +8[label=account name=Donatello]; +9[label=account name=Raphael]; +10[label=account name=Michelangelo]; +7--0 [label=post]; +7--1 [label=like]; +7--2 [label=like]; +8--0 [label=like]; +8--2 [label=post]; +8--4 [label=post]; +8--5 [label=like]; +8--6 [label=post]; +9--1 [label=post]; +9--3 [label=like]; +10--3 [label=post]; +10--4 [label=like]; +10--5 [label=post]; +10--6 [label=like]; +} diff --git a/examples/datasets/mining_gfd/study_graph.dot b/examples/datasets/mining_gfd/study_graph.dot new file mode 100644 index 0000000000..1112601e4b --- /dev/null +++ b/examples/datasets/mining_gfd/study_graph.dot @@ -0,0 +1,34 @@ +graph G { +0[label=task difficulty=easy]; +1[label=task difficulty=normal]; +2[label=task difficulty=normal]; +3[label=task difficulty=hard]; +4[label=task difficulty=hard]; +5[label=task difficulty=hard]; +6[label=student name=James degree=bachelor year=2]; +7[label=student name=Michael degree=master year=1]; +8[label=student name=Robert degree=bachelor year=3]; +9[label=student name=John degree=master year=2]; +10[label=student name=David degree=bachelor year=4]; +11[label=student name=William degree=master year=2]; +12[label=student name=Richard degree=master year=2]; +13[label=student name=Joseph degree=master year=2]; +14[label=student name=Thomas degree=master year=2]; +15[label=student name=Christopher degree=master year=2]; +0--6 [label=performs]; +1--6 [label=performs]; +1--7 [label=performs]; +1--10 [label=performs]; +2--7 [label=performs]; +2--8 [label=performs]; +2--9 [label=performs]; +3--9 [label=performs]; +3--11 [label=performs]; +3--12 [label=performs]; +4--12 [label=performs]; +4--13 [label=performs]; +4--14 [label=performs]; +5--11 [label=performs]; +5--14 [label=performs]; +5--15 [label=performs]; +}