diff options
| -rw-r--r-- | paper/figures/ROC_curve.pdf | bin | 0 -> 13736 bytes | |||
| -rw-r--r-- | paper/sections/experiments.tex | 7 | ||||
| -rw-r--r-- | src/algorithms.py | 2 | ||||
| -rw-r--r-- | src/convex_optimization.py | 4 | ||||
| -rw-r--r-- | src/make_plots.py | 47 |
5 files changed, 36 insertions, 24 deletions
diff --git a/paper/figures/ROC_curve.pdf b/paper/figures/ROC_curve.pdf Binary files differnew file mode 100644 index 0000000..27a8924 --- /dev/null +++ b/paper/figures/ROC_curve.pdf diff --git a/paper/sections/experiments.tex b/paper/sections/experiments.tex index 7b5d990..9580ef8 100644 --- a/paper/sections/experiments.tex +++ b/paper/sections/experiments.tex @@ -1,6 +1,11 @@ \begin{figure} \includegraphics[scale=.4]{figures/watts_strogatz.pdf} -\caption{Watts-Strogatz Model. 300 nodes, 20000 edges.} +\caption{Precision-Recall curve Holme-Kim Model. 200 nodes, 16200 edges.} +\end{figure} + +\begin{figure} +\includegraphics[scale=.4]{figures/watts_strogatz.pdf} +\caption{Watts-Strogatz Model. 200 nodes, 20000 edges.} \end{figure} diff --git a/src/algorithms.py b/src/algorithms.py index fb0a37d..51f57bf 100644 --- a/src/algorithms.py +++ b/src/algorithms.py @@ -70,6 +70,7 @@ def correctness_measure(G, G_hat, print_values=True): precision = 1. * tp / (tp + fp) recall = 1. * tp / (tp + fn) f1_score = 2.* tp / (2 * tp + fp + fn) + fall_out = 1. * fp / (fp + tn) if print_values: print("False Positives: {}".format(fp)) @@ -80,6 +81,7 @@ def correctness_measure(G, G_hat, print_values=True): print("Precision: {}".format(precision)) print("Recall: {}".format(recall)) print("F1 score: {}".format(f1_score)) + print("Fall Out: {}".format(fall_out)) return fp, fn, tp, tn diff --git a/src/convex_optimization.py b/src/convex_optimization.py index 0ff4521..e355bc6 100644 --- a/src/convex_optimization.py +++ b/src/convex_optimization.py @@ -80,7 +80,7 @@ def type_lasso(lbda, n_cascades): return f_x, f_xz -@timeout.timeout(70) +@timeout.timeout(10) def diff_and_opt(M_val, w_val, f_x, f_xz): if M_val.dtype == bool: @@ -90,7 +90,7 @@ def diff_and_opt(M_val, w_val, f_x, f_xz): def F(x=None, z=None): if x is None: - return 0, cvxopt.matrix(-.1, (n,1)) + return 0, cvxopt.matrix(-.001, (n,1)) elif z is None: y, y_diff = f_x(x, M_val, w_val) return cvxopt.matrix(float(y), (1, 1)),\ diff --git a/src/make_plots.py b/src/make_plots.py index 9b0fc11..1b3a9df 100644 --- a/src/make_plots.py +++ b/src/make_plots.py @@ -78,26 +78,31 @@ def plot_ROC_curve(figure_name): plot information in a pretty way """ plt.clf() - fig = plt.figure(1) - #labels = [0, .00002, .002, .02, .2, .5] - x_sparse = [.57, .6, .61, .76, .9] - y_sparse = [.41, .4, .37, .16, .03] - - x_lasso = [.55, .56, .66] - y_lasso = [.5, .43, .25] + fig = plt.figure(2) fig, ax = plt.subplots() - plt.axis((np.log(45), np.log(5500), 0, 1)) - plt.xlabel("Number of Cascades") - plt.ylabel("F1 score") + recall_sparse_200 = [.03, .16, .37, .4, .49] + precision_sparse_200 = [.9, .76, .61, .6, .63] + + recall_lasso_200 = [.02, .11, .25, .43, .5, .54] + precision_lasso_200 = [.77, .77, .66, .56, .55, .51] + + recall_sparse_50 = [.07, .13, .16, .58] + precision_sparse_50 = [.56, .53, .49, .37] + + recall_lasso_50 = [.03, .18, .27, .82] + precision_lasso_50 = [.6, .47, .44, .24] + + plt.xlabel("Recall") + plt.ylabel("Precision") plt.grid(color="lightgrey") - ax.plot(x_lasso, y_lasso, 'ko-', color="orange", label="Lasso") - ax.plot(x_sparse, y_sparse, 'ko-', color="k", label="Our Method") - plt.legend(loc="lower right") - ax.set_xticks(x) - ax.set_xticklabels(tuple(labels)) - plt.savefig("../paper/figures/"+figure_name) + ax.plot(recall_lasso_200, precision_lasso_200, 'ko-', color="lightseagreen", label="Lasso-200 cascades") + ax.plot(recall_sparse_200, precision_sparse_200, 'ko-', color="k", label="Our Method-200 cascades") + ax.plot(recall_lasso_50, precision_lasso_50, 'ko-', color="orange", label="Lasso-50 cascades") + ax.plot(recall_sparse_50, precision_sparse_50, 'ko-', color="cornflowerblue", label="Our Method-50 cascades") + plt.legend(loc="upper right") + plt.savefig("../paper/figures/"+"ROC_curve.pdf") if __name__=="__main__": @@ -107,13 +112,13 @@ if __name__=="__main__": #convex_optimization.sparse_recovery) #algorithms.greedy_prediction) convex_optimization.sparse_recovery) - if 0: + if 1: compute_graph("../datasets/powerlaw_200_30_point3.txt", - n_cascades=300, lbda=.002, passed_function= - convex_optimization.sparse_recovery) + n_cascades=200, lbda=.01, passed_function= + #convex_optimization.sparse_recovery) #algorithms.greedy_prediction) - #convex_optimization.type_lasso) - if 1: + convex_optimization.type_lasso) + if 0: compute_graph("../datasets/barabasi_albert_300_30.txt", n_cascades=100, lbda=.002, passed_function= convex_optimization.sparse_recovery) |
