refo/epsilonValues.R

85 lines
2.8 KiB
R

# Libraries
library(ggplot2)
library(matrixStats)
ta <- as.matrix(read.table(file.choose(), sep=",", header = FALSE))
ta <- t(ta)
dim(ta)
head(ta)
# Create dummy data
data <- data.frame(
y=ta[,1],
y2=ta[,2],
y3=ta[,3],
y4=ta[,4],
y5=ta[,5],
y6=ta[,6],
y7=ta[,7],
y8=ta[,8],
y9=ta[,9],
y10=ta[,10],
y11=ta[,11],
y12=ta[,12],
y13=ta[,13],
y14=ta[,14],
y15=ta[,15],
x=seq(1, length(ta[,1]))
)
ggplot(data, aes(x*1000)) +
labs(title="Discount factor = 0.99",
x ="Timestamp", y = "Avg. reward per timestamp", color = "Learning rate") +
ylim(-1.5,0.6) +
geom_line(aes(y = y, colour = "0.1"), size=1)+
geom_line(aes(y = y2, colour = "0.3"), size=1) +
geom_line(aes(y = y3, colour = "0.5"), size=1) +
geom_line(aes(y = y4, colour = "0.7"), size=1) +
geom_line(aes(y = y5, colour = "0.9"), size=1)
ggplot(data, aes(x*1000)) +
labs(title="Discount factor = 0.9",
x ="Timestamp", y = "Avg. reward per timestamp", color = "Learning rate") +
ylim(-1.5,0.6) +
geom_line(aes(y = y6, colour = "0.1"), size=1) +
geom_line(aes(y = y7, colour = "0.3"), size=1) +
geom_line(aes(y = y8, colour = "0.5"), size=1) +
geom_line(aes(y = y9, colour = "0.7"), size=1) +
geom_line(aes(y = y10, colour = "0.9"), size=1)
ggplot(data, aes(x*1000) ) +
labs(title="Discount factor = 0.5",
x ="Timestamp", y = "Avg. reward per timestamp", color = "Learning rate") +
ylim(-1.5,0.6) +
geom_line(aes(y = y11, colour = "0.1"), size=1) +
geom_line(aes(y = y12, colour = "0.3"), size=1) +
geom_line(aes(y = y13, colour = "0.5"), size=1) +
geom_line(aes(y = y14, colour = "0.7"), size=1) +
geom_line(aes(y = y15, colour = "0.9"), size=1)
# scale_x_log10(limits=c(1,150) )
# scale_y_log10( breaks=c(1,50,500,2500,25000), limits=c(1,25000) )
plot(ta, x=x*1000, log="x", type="o")
convergence <- read.csv(file.choose(), header=FALSE, row.names=1)
sds <- rowSds(sapply(convergence[,-1], `length<-`, max(lengths(convergence[,-1]))), na.rm=TRUE)
men <- rowMeans(sapply(convergence[,-1], `length<-`, max(lengths(convergence[,-1]))), na.rm=TRUE)
print(sds)
# create dummy data
data <- data.frame(
names=rownames(convergence),
means=men,
sds=sds
)
ggplot(data) +
geom_bar(aes(x=names, y=means), stat="identity", fill="skyblue", alpha=0.7) +
geom_errorbar( aes(x=names, ymin=means-sds, ymax=means+sds), width=0.4, colour="orange", alpha=0.9, size=1.3) +
geom_text(aes(label=as.integer(means), x =names, y=means), position=position_dodge(width=0.9), vjust=-0.25) +
xlab("Epsilon") + ylab("avg. amount of episodes until convergence")
ba <- barplot(names=rownames(convergence), height=men, ylim=c(0, max(men)*1.2), ylab = "avg. episodes until convergence", xlab = "epsilon value")
text(x = ba, y = men, label = as.integer(men), pos = 3, cex = 0.8, col = "red")