from plots import EloPlot, Data import numpy as np for discount in [0.5, 0.75, 0.95]: l = [(f'SL-discount-{discount}-NoTrain-alpha-0.000003', 'Simple Linear', '#9C27B0'), (f'LA-discount-{discount}-NoTrain-alpha-0.000001', 'Linear Approximation', '#2196F3'), (f'NN-discount-{discount}-NoTrain-lr-0.0002', 'Neural Network', '#4CAF50')] with EloPlot(title=f'Agents, discount={discount} - Elo Rating3', saves=[f'GoodPlots/Agents-{discount}.png']) as plt: for EloOverTime, name, agent, color in Data( [f".\\outputs\\{a[0]}\\csv" for a in l], colors=[a[2] for a in l], elo=False): name = [a[1] for a in l if a[0] == name][0] plt.varPlot(plt, EloOverTime, name, color)
import pandas as pd from plots import EloPlot import numpy as np data = np.array( pd.read_csv("outputs/Best-5000/csv/NNAgent4Best-5000-EloOverTime.csv", header=None))[0, :] with EloPlot(title=f'The Very Best', saves=[f'GoodPlots/BestSingle.png']) as plt: plt.plot(data, label='The Best', color='#4CAF50') plt.ylim((900, 2520)) plt.doPrint = True data = np.array( pd.read_csv("outputs/Fruit-5000/csv/NNAgent15Fruit-5000-EloOverTime.csv", header=None))[0, :] with EloPlot(title=f'The Very Best Fruit', saves=[f'GoodPlots/BestSingleFruit.png'], CR=False, CRP=False) as plt: plt.plot(data, label='The Best Fruit', color='#4CAF50') plt.doPrint = True plt.axhline(y=1480.4, color='#E91E63', lw=1, label='CleverRandom+probs', zorder=1) plt.axhline(y=1289.0, color='#9C27B0',
from plots import EloPlot, Data import numpy as np l = [('LAMBDA-0.9_DISCOUNT-0.01', 'discount=0.01, lambda=0.9', '#9C27B0'), ('LAMBDA-0.9_DISCOUNT-0.1', 'discount=0.1, lambda=0.9', '#2196F3'), ('LAMBDA-0.9_DISCOUNT-0.5', 'discount=0.5, lambda=0.9', '#4CAF50'), ('LAMBDA-0.9_DISCOUNT-0.9', 'discount=0.9, lambda=0.9', '#F44336'), ('LAMBDA-0.9_dISCOUNT-0.99', 'Discount=0.99, lambda=0.9', '#228B22')] with EloPlot(title=f'Lambda and discount - lambda - 0.9', saves=[f'GoodPlots/LambdaDiscountLAMBD09.png']) as plt: for EloOverTime, name, agent, color in Data([f".\\outputs\\{a[0]}\\csv" for a in l], colors=[a[2] for a in l], elo=False): name = [a[1] for a in l if a[0] == name][0] plt.varPlot(plt, EloOverTime, name, color)
from plots import EloPlot, Data import numpy as np l = [('CleverRandomElo-fruit-CalcProb', 'CleverRandom+probs', '#E91E63'), ('CleverRandomElo-fruit', 'CleverRandom', '#9C27B0')] with EloPlot(title=f'Clever Random - Fruit', saves=[f'GoodPlots/CleverRandomFruit.png'], CR=False, CRP=False) as plt: for EloOverTime, name, agent, color in Data( [f".\\outputs\\{a[0]}\\csv" for a in l], colors=[a[2] for a in l], elo=False): name = [a[1] for a in l if a[0] == name][0] theData = EloOverTime[0, 1000:, :] m = theData.mean() sd = theData.std() / np.sqrt(theData.size) * 1.96 print( f'{name}: mean = {m:.6} , 95% = [{(m-sd):.6}, {(m+sd):.6}] Calculated from {theData.shape[1]} samples.' ) plt.varPlot(plt, EloOverTime, name, color)
from plots import EloPlot, Data with EloPlot(title=f'Probability - Elo Rating', saves=[f'GoodPlots/Probability.png']) as plt: for EloOverTime, name, agent, color in Data([ ".\\outputs\\4000-calcprob-True\\csv", ".\\outputs\\4000-calcprob-false\\csv" ], colors=['#4CAF50', '#2196F3'], elo=False): name = 'NNAgent+probs' if name == '4000-calcprob-True' else 'NNAgent' plt.varPlot(plt, EloOverTime, name, color)
from plots import EloPlot, Data import numpy as np l = [('Best-2000', 'Explorer 2000', '#2196F3'), ('Best-5000', 'Explorer 5000', '#4CAF50')] with EloPlot(title=f'The Best - Elo Rating', saves=[f'GoodPlots/BestNoFruit.png']) as plt: for EloOverTime, name, agent, color in Data( [f".\\outputs\\{a[0]}\\csv" for a in l], colors=[a[2] for a in l], elo=False): name = [a[1] for a in l if a[0] == name][0] theData = EloOverTime[0, 10000:, :] m = theData.mean() sd = theData.std() / np.sqrt(theData.size) * 1.96 print( f'{name}: mean = {m:.6} , 95% = [{(m-sd):.6}, {(m+sd):.6}] Calculated from {theData.shape[1]} samples.' ) plt.varPlot(plt, EloOverTime, name, color)
from plots import EloPlot, allDirs, Data maxi, maxiplot = 0, None for Elo, EloOverTime, name, agent, color in Data(allDirs()): with EloPlot(xlabel='Players', title=f'{name} - Elo Rating', saves=[ f'plots/EloRating/' + f'{name}' + '.png', f'outputs/{name}/' + f'{name} - Elo Rating' + '.png' ]) as plt: plt.varPlot(plt, Elo, agent, color) with EloPlot( title=f'{name} - Elo Rating over Time', saves=[ f'plots/EloRatingOverTime/' + f'{name}' + '.png', f'outputs/{name}/' + f'{name} - Elo Rating over Time' + '.png' ]) as plt: plt.varPlot(plt, EloOverTime, agent, color) # plt.maxPlot(plt, EloOverTime, agent, color) try: temp = EloOverTime.max() if temp > maxi: maxi, maxiplot = temp, name except: pass print(maxi, maxiplot)
for chooser in ['random', 'weighted']: selfplay = 50 l = [(f'NN-Selfplay-{selfplay}-{chooser}-lr=0.0002-K=2000', 'No Impala', '#673ab7'), (f'NN-Selfplay-{selfplay}-{chooser}-impala-20-20-50-20', 'NN 50 20', '#9C27B0'), (f'NN-Selfplay-{selfplay}-{chooser}-impala-20-20-100-10', 'NN 100 10', '#2196F3'), (f'NN-Selfplay-{selfplay}-{chooser}-impala-20-20-200-5', 'NN 200 5', '#4CAF50'), (f'NN-Selfplay-{selfplay}-{chooser}-impala-20-20-500-2', 'NN 500 20', '#795548'), (f'NN-Selfplay-{selfplay}-{chooser}-impala-20-20-1000-1', 'NN 1000 1', '#ffeb3b')] with EloPlot(title=f'Chooserfunction, selfplay={selfplay} - Elo Rating', saves=[f'GoodPlots/Impala-{chooser}-1000.png']) as plt: for EloOverTime, name, agent, color in Data( [f".\\outputs\\{a[0]}\\csv" for a in l], colors=[a[2] for a in l], elo=False): name = [a[1] for a in l if a[0] == name][0] plt.varPlot(plt, EloOverTime, name, color) for chooser in ['random', 'weighted']: selfplay = 50 l = [(f'NN-Selfplay-{selfplay}-{chooser}-lr=0.0002-K=2000-calcprobs', 'No Impala', '#673ab7'), (f'NN-Selfplay-{selfplay}-{chooser}-impala-20-20-50-20-calcprobs', 'NN 50 20', '#9C27B0'), (f'NN-Selfplay-{selfplay}-{chooser}-impala-20-20-100-10-calcprobs', 'NN 100 10', '#2196F3'),
from plots import EloPlot, Data import numpy as np l = [('CleverRandomEloCalcProb', 'CleverRandom+probs', '#E91E63'), ('CleverRandomElo', 'CleverRandom', '#9C27B0')] with EloPlot(title=f'Clever Random - Elo Rating', saves=[f'GoodPlots/CleverRandom.png'], CR=False, CRP=False) as plt: for EloOverTime, name, agent, color in Data([f".\\outputs\\{a[0]}\\csv" for a in l], colors=[a[2] for a in l], elo=False): name = [a[1] for a in l if a[0] == name][0] theData = EloOverTime[0, 1000:, :] m = theData.mean() sd = theData.std() / np.sqrt(theData.size) * 1.96 print(f'{name}: mean = {m:.6} , 95% = [{(m-sd):.6}, {(m+sd):.6}] Calculated from {theData.shape[1]} samples.') plt.varPlot(plt, EloOverTime, name, color)
from plots import EloPlot, Data l = [('4000-Abs', 'Absolut Error', '#2196F3'), ('4000-MME', 'Mean Squared Error', '#4CAF50')] with EloPlot(title=f'Cost function - Elo Rating', saves=[f'GoodPlots/Costfunction.png']) as plt: for EloOverTime, name, agent, color in Data( [f".\\outputs\\{a[0]}\\csv" for a in l], colors=[a[2] for a in l], elo=False): name = [a[1] for a in l if a[0] == name][0] plt.varPlot(plt, EloOverTime, name, color)
from plots import EloPlot, Data, colors import numpy as np dropouts = [0.0, 0.1, 0.2, 0.3, 0.4, 0.5] l = [(f'Dropout-{dropout}', f'Dropout {dropout}', colors[i]) for i, dropout in enumerate(dropouts)] with EloPlot(title=f'Dropout', saves=[f'GoodPlots/Dropout.png']) as plt: for EloOverTime, name, agent, color in Data( [f".\\outputs\\{a[0]}\\csv" for a in l], colors=[a[2] for a in l], elo=False): name = [a[1] for a in l if a[0] == name][0] plt.varPlot(plt, EloOverTime, name, color)
from plots import EloPlot, Data import numpy as np l = [('4000-Dis-0-lamd-0', 'Discount=0, lambda=0', '#9C27B0'), ('4000-Dis-1-lamd-0', 'Discount=1, lambda=0', '#2196F3'), ('4000-Dis-0-lamd-1', 'Discount=0, lambda=1', '#4CAF50'), ('4000-Dis-1-lamd-1', 'Discount=1, lambda=1', '#F44336')] with EloPlot(title=f'Lambda and Discount - Elo Rating', saves=[f'GoodPlots/LambdaDiscount.png']) as plt: for EloOverTime, name, agent, color in Data( [f".\\outputs\\{a[0]}\\csv" for a in l], colors=[a[2] for a in l], elo=False): name = [a[1] for a in l if a[0] == name][0] plt.varPlot(plt, EloOverTime, name, color)
from plots import EloPlot, Data for selfplay in [20, 50, 100]: l = [(f'NN-Selfplay-{selfplay}-weighted-lr=0.0002', 'Weighted Chooser', '#9C27B0'), (f'NN-Selfplay-{selfplay}-random-lr=0.0002', 'Random Chooser', '#2196F3'), (f'NN-Selfplay-{selfplay}-incremental-lr=0.0002', 'Incremental Chooser', '#4CAF50')] with EloPlot(title=f'Chooserfunction, selfplay={selfplay} - Elo Rating', saves=[f'GoodPlots/Chooser-{selfplay}.png']) as plt: for EloOverTime, name, agent, color in Data( [f".\\outputs\\{a[0]}\\csv" for a in l], colors=[a[2] for a in l], elo=False): name = [a[1] for a in l if a[0] == name][0] plt.varPlot(plt, EloOverTime, name, color) for selfplay in [20, 50, 100]: l = [(f'NN-Selfplay-{selfplay}-weighted-lr=0.0002-K=2000', 'Weighted Chooser', '#9C27B0'), (f'NN-Selfplay-{selfplay}-random-lr=0.0002-K=2000', 'Random Chooser', '#2196F3'), (f'NN-Selfplay-{selfplay}-incremental-lr=0.0002-K=2000', 'Incremental Chooser', '#4CAF50')] with EloPlot( title=f'Chooserfunction, selfplay={selfplay}, K=2000 - Elo Rating',
from plots import EloPlot, Data import numpy as np l = [('Fruit-2000', 'Fruit - Explorer 2000', '#2196F3'), ('Fruit-5000', 'Fruit - Explorer 5000', '#4CAF50')] with EloPlot(title=f'The Fruit - Elo Rating', saves=[f'GoodPlots/BestFruit.png'], CR=False, CRP=False) as plt: for EloOverTime, name, agent, color in Data( [f".\\outputs\\{a[0]}\\csv" for a in l], colors=[a[2] for a in l], elo=False): name = [a[1] for a in l if a[0] == name][0] theData = EloOverTime[0, 10000:, :] m = theData.mean() sd = theData.std() / np.sqrt(theData.size) * 1.96 print( f'{name}: mean = {m:.6} , 95% = [{(m-sd):.6}, {(m+sd):.6}] Calculated from {theData.shape[1]} samples.' ) plt.varPlot(plt, EloOverTime, name, color) plt.axhline(y=1480.4, color='#E91E63', lw=1, label='CleverRandom+probs', zorder=1) plt.axhline(y=1289.0, color='#9C27B0',