Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
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)
Beispiel #4
0
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()
Beispiel #5
0
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()
Beispiel #6
0
def is_expert(user_id):
    """
    Returns true if the user is an expert.
    """
    return user_id in search_utilities.get_experts()