# Copyright 2019 Seth V. Neel, Michael J. Kearns, Aaron L. Roth, Zhiwei Steven Wu # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy of # the License at http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software distributed # under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR # CONDITIONS OF ANY KIND, either express or implied. See the License for the # specific language governing permissions and limitations under the License. from matplotlib import pyplot as plt def plot_single(errors_t, fp_diff_t, max_iters, gamma, C): """Plot the errors and false positive rate disparity over time. :param errors_t: list of errors at each iteration :param fp_diff_t: list of fp rate disparity at each iteration :param max_iters: time horizon T of the algorithm :param gamma: input gamma disparity :param C: input C parameter - see gerryfair_classifier.py """ # plot errors x = range(max_iters - 1) y_t = errors_t fig1 = plt.figure() ax1 = fig1.add_subplot(111) ax1.plot(x, y_t) plt.ylabel('average error of mixture') plt.xlabel('iterations') plt.title('error vs. time: C: {}, gamma: {}'.format(C, gamma)) plt.show() # plot fp disparity x = range(max_iters - 1) y_t = fp_diff_t fig2 = plt.figure() ax2 = fig2.add_subplot(111) ax2.plot(x, y_t) plt.ylabel('fp_diff*group_size') plt.xlabel('iterations') plt.title('fp_diff*size vs. time: C: {}, gamma: {}'.format(C, gamma)) ax2.plot(x, [gamma] * len(y_t)) plt.show()