Ejemplo n.º 1
0
    def fetch_results(self):
        men_data = []
        women_data = []
        men_append = men_data.append
        women_append = women_data.append

        for level in range(0, self.num_levels):
            men_averager = Averager()
            women_averager = Averager()
            for result in self.results:
                men_averager.add(result.men[level])
                women_averager.add(result.women[level])

            total_employees = men_averager.get_total(
            ) + women_averager.get_total()
            men_avg = men_averager.get_average()
            men_percentage = 100 * men_averager.get_total() / total_employees
            women_avg = women_averager.get_average()
            women_percentage = 100 * women_averager.get_total(
            ) / total_employees

            men_append(men_percentage)
            women_append(women_percentage)

        return [men_data, women_data]
Ejemplo n.º 2
0
    def print_summary(self):
        """Print summary"""
        print ("Level\tMen\t\t\tWomen")
        print ("\tavg\tmedian\t%\tavg\tmedian\t%")
        print ("-----\t-----------------\t-----------------")

        for level in range(0, self.num_levels):
            men_averager = Averager()
            women_averager = Averager()
            for result in self.results:
                men_averager.add(result.men[level])
                women_averager.add(result.women[level])

            total_employees = men_averager.get_total() + women_averager.get_total()
            men_avg = men_averager.get_average()
            men_median = men_averager.get_median()
            men_percentage = 100 * men_averager.get_total() / total_employees
            women_avg = women_averager.get_average()
            women_median = women_averager.get_median()
            women_percentage = 100 * women_averager.get_total() / total_employees

            summary = "%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f" % (
                level + 1,
                men_avg,
                men_median,
                men_percentage,
                women_avg,
                women_median,
                women_percentage,
            )
            print summary
Ejemplo n.º 3
0
    def fetch_results(self):
        men_data = []
        women_data = []
        men_append = men_data.append
        women_append = women_data.append

        for level in range(0, self.num_levels):
            men_averager = Averager()
            women_averager = Averager()
            for result in self.results:
                men_averager.add(result.men[level])
                women_averager.add(result.women[level])

            total_employees = men_averager.get_total() + women_averager.get_total()
            men_avg = men_averager.get_average()
            men_percentage = 100 * men_averager.get_total() / total_employees
            women_avg = women_averager.get_average()
            women_percentage = 100 * women_averager.get_total() / total_employees

            men_append(men_percentage)
            women_append(women_percentage)

        return [men_data, women_data]
                    correct += a_correct
                    total += len(p_lines)
                    print 'correct = ', correct, ' total = ', total, ' percentage = ', float(correct) / float(total)
                print 'final results:'
                print 'correct = ', correct, ' total = ', total, ' percentage = ', float(correct)/float(total)

    elif train_or_test == 'train':
        with open(data_filename) as data_file:
            with tf.Session() as session:
                session.run(init_op)
                av = Averager(50)
                for batch_index in range(number_of_batches):
                    lines = helper.read_file_in_loop(data_file, batch_size)
                    input_header_text_vectors = helper.convert_lines_to_matrix(lines, word_to_index, header_text_length, 'h')
                    input_content_text_vectors = helper.convert_lines_to_matrix(lines, word_to_index, content_text_length, 'c')
                    input_label_vector = helper.convert_lines_to_labels(lines)

                    feed_dict = {input_header_text: input_header_text_vectors, input_content_text: input_content_text_vectors, input_labels: input_label_vector}
                    (_loss, _, _predicted) = session.run([loss, train_op, predicted_as_vector], feed_dict=feed_dict)
                    assessment = helper.prediction_assessment(input_label_vector, _predicted)
                    (_, _percent) = assessment
                    av.add(_percent)
                    if (batch_index % 50) == 0 or batch_index == (number_of_batches-1):
                        print 'batch: ', batch_index, ' loss: ', _loss
                        print 'assessment: ', assessment
                        print 'Last 50 iterations average: ', av.average()
                        print ''
                saver.save(session, save_file)
    else:
        raise ValueError('Bad argument: ' + train_or_test)