In [ ]:
# Require the packages
require(ggplot2)
require(reshape2)
library(repr)
options(repr.plot.width=10.5, repr.plot.height=6.5)
In [ ]:
# Load the data
accuracies <- read.csv("data/accuracies_semeval_semisupervised.csv")
accuracies$metric <- "accuracy"
mcp <- read.csv("data/mcp_semeval_semisupervised.csv")
mcp$metric <- "mcp"
lcr <- read.csv("data/lcr_semeval_semisupervised.csv")
lcr$metric <- "lcr"
In [ ]:
# Transform the data
accuracies.long <- melt(accuracies, id.vars = c("metric"), variable.name = "experiment", value.name = "result")
mcp.long <- melt(mcp, id.vars = c("metric"), variable.name = "experiment", value.name = "result")
lcr.long <- melt(lcr, id.vars = c("metric"), variable.name = "experiment", value.name = "result")
#data <- accuracies.long
data <- rbind(accuracies.long, mcp.long)
data <- rbind(data, lcr.long)
data$experiment <- factor(data$experiment, levels=c("supervised_bow", "supervised_vec", "supervised_vecpos",
"bootstrap_bow", "bootstrap_vec", "bootstrap_vecpos",
"ladder_vec", "ladder_vecpos"))
data$metric <- factor(data$metric, levels=c("accuracy", "mcp", "lcr"))
levels(data$metric) <- c("Accuracy", "Most Frequent Class Precision", "Less Frequent Classes Recall")
In [ ]:
# Plot
p <- ggplot(data, aes(experiment, result))
p <- p + stat_boxplot(geom="errorbar")
p <- p + facet_wrap(~ metric)
p <- p + geom_boxplot(aes(fill=experiment))
p <- p + scale_y_continuous(breaks=seq(0, 1, 0.1))
p <- p + scale_fill_discrete(name="Experiment",
labels=c("Supervised\nBag-of-Words\n& Logistic Regression",
"Supervised\nWord Embeddings\n& Multilayer Perceptron",
"Supervised\nWord Embeddings\nand PoS\n& Multilayer Perceptron",
"Naive Bootstrap\nBag-of-Words\n& Logistic Regression",
"Naive Bootstrap\nWord Embeddings\n& Multilayer Perceptron",
"Naive Bootstrap\nWord Embeddings\nand PoS\n& Multilayer Perceptron",
"Ladder Networks\nWord Embeddings\n& Multilayer Perceptron",
"Ladder Networks\nWord Embeddings\nand PoS\n& Multilayer Perceptron"))
p <- p + labs(title="Semeval Semisupervised Experiments Comparison")
p <- p + theme(
plot.title=element_text(size=15, face="bold", margin=margin(10, 0, 10, 0), vjust=1, lineheight=0.6),
strip.text.x=element_text(size=10),
axis.title.x=element_blank(),
axis.title.y=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank(),
legend.title=element_text(face="bold", size=13),
legend.text=element_text(size=11),
legend.key.height=unit(3.5,"line")
)
p
In [ ]:
# Save the plot
ggsave("plots/semeval_semisupervised_results.png", plot=p, width=10.5, height=6.5)
In [ ]: