def main(args): conn, cur = metrics.connect("cooking", "Ben-han") user_ids = search_utilities.get_experts() + search_utilities.get_nonexperts() shuffle(user_ids) data, labels = training_examples(cur, conn, user_ids) train_data = data[:len(data)/2] train_labels = labels[:len(labels)/2] test_data = data[len(data)/2:] test_labels = labels[len(labels)/2:] ml.logistic_test(train_data, train_labels, train_data, train_labels, cv=True)
def sample(cur, sample_size=50): """Samples num users out of the non-expert population that has asked or answered at least one question (active)""" experts = tuple(search_utilities.get_experts()) query1 = """SELECT u.id FROM se_user u INNER JOIN post p ON p.owner_user_id = u.id WHERE u.id <> -1 AND u.id NOT IN %(experts)s AND p.post_type_id = 2 GROUP BY u.id HAVING Count(*) > 1 ORDER BY random() LIMIT %(limit)s;""" cur.execute(query1, {"experts": experts, "limit": sample_size}) return list(result[0] for result in cur)
def sample(cur, sample_size = 50): """Samples num users out of the non-expert population that has asked or answered at least one question (active)""" experts = tuple(search_utilities.get_experts()) query1 = """SELECT u.id FROM se_user u INNER JOIN post p ON p.owner_user_id = u.id WHERE u.id <> -1 AND u.id NOT IN %(experts)s AND p.post_type_id = 2 GROUP BY u.id HAVING Count(*) > 1 ORDER BY random() LIMIT %(limit)s;""" cur.execute(query1, {"experts": experts, "limit": sample_size}) return list(result[0] for result in cur)
def main(args): conn, cur = connect("cooking", "Ben-han") experts = search_utilities.get_experts() nonexperts = search_utilities.get_nonexperts() # plot_individual_elo(cur, conn, 95, 'red') # plt.savefig("output/codegolf.png") # plt.show() # Expert plots # print "Plotting average expert Auth" # plot_avg_auth(cur, experts, 'blue') print "Plotting average expert PageRank" plot_avg_pagerank(cur, experts, 'green', label = "Expert") # print "Plotting average expert ELO" # plot_avg_elo(cur, conn, experts, 'blue') # print "Plotting average expert Cau" # plot_avg_cau(cur, conn, experts, 'purple') # plt.legend(loc = 4) # plt.savefig("output/expert_combined.png") # plt.show() # Non-expert plots # print "Plotting average nonexpert Auth" # plot_avg_auth(cur, nonexperts, 'blue') print "Plotting average nonexpert PageRank" plot_avg_pagerank(cur, nonexperts, 'blue', label = "Non-expert") # print "Plotting average nonexpert ELO" # plot_avg_elo(cur, conn, nonexperts, 'red') # print "Plotting average nonexpert Cau" # plot_avg_cau(cur, conn, nonexperts, 'green') # plt.legend(loc = 4) #plot_reputation_distribution(cur, 'green') plt.suptitle("Avg. expert PageRank vs non-expert PageRank") plt.xlabel("Lifetime percentage") plt.ylabel("Rating") plt.legend(loc = 4) plt.savefig("output/expert_vs_nonexpert_pagerank.png") plt.show()
def main(args): conn, cur = connect("cooking", "Ben-han") experts = search_utilities.get_experts() nonexperts = search_utilities.get_nonexperts() # plot_individual_elo(cur, conn, 95, 'red') # plt.savefig("output/codegolf.png") # plt.show() # Expert plots # print "Plotting average expert Auth" # plot_avg_auth(cur, experts, 'blue') print "Plotting average expert PageRank" plot_avg_pagerank(cur, experts, 'green', label="Expert") # print "Plotting average expert ELO" # plot_avg_elo(cur, conn, experts, 'blue') # print "Plotting average expert Cau" # plot_avg_cau(cur, conn, experts, 'purple') # plt.legend(loc = 4) # plt.savefig("output/expert_combined.png") # plt.show() # Non-expert plots # print "Plotting average nonexpert Auth" # plot_avg_auth(cur, nonexperts, 'blue') print "Plotting average nonexpert PageRank" plot_avg_pagerank(cur, nonexperts, 'blue', label="Non-expert") # print "Plotting average nonexpert ELO" # plot_avg_elo(cur, conn, nonexperts, 'red') # print "Plotting average nonexpert Cau" # plot_avg_cau(cur, conn, nonexperts, 'green') # plt.legend(loc = 4) #plot_reputation_distribution(cur, 'green') plt.suptitle("Avg. expert PageRank vs non-expert PageRank") plt.xlabel("Lifetime percentage") plt.ylabel("Rating") plt.legend(loc=4) plt.savefig("output/expert_vs_nonexpert_pagerank.png") plt.show()
def is_expert(user_id): """ Returns true if the user is an expert. """ return user_id in search_utilities.get_experts()