In [ ]:
# Require the packages
require(ggplot2)
require(reshape2)
library(repr)
options(repr.plot.width=10.5, repr.plot.height=4.5)
In [ ]:
# Load the data
accuracies <- read.csv("data/accuracies_sensem_supervised.csv")
accuracies$metric <- "accuracy"
mcp <- read.csv("data/mcp_sensem_supervised.csv")
mcp$metric <- "mcp"
lcr <- read.csv("data/lcr_sensem_supervised.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 <- rbind(accuracies.long, mcp.long)
data <- rbind(data, lcr.long)
data$experiment <- factor(data$experiment, levels=c("mfl", "bow_logreg", "bopos_logreg",
"pos_logreg", "wordvec_mlp_2_0", "wordvecpos_mlp_2_0"))
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_x_discrete(labels=c("1", "2", "3", "4", "5", "6"))
p <- p + scale_fill_discrete(name="Experiment",
labels=c("Baseline",
"Bag-of-Words\n& Logistic Regression",
"Bag-of-Words\nand Bag-of-PoS\n& Logistic Regression",
"Bag-of-Words\nand Seq-of-PoS\n& Logistic Regression",
"Word Embeddings\n& Multilayer Perceptron",
"Word Embeddings\nand PoS\n& Multilayer Perceptron"))
p <- p + labs(title="SenSem Experiments", x="Experiment Number")
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_text(face="bold", size=13, margin=margin(15, 0, 0, 0)),
axis.title.y=element_blank(),
axis.text.x=element_text(size=10),
legend.title=element_text(face="bold", size=13),
legend.text=element_text(size=11),
legend.key.height=unit(2.75,"line")
)
p <- p + guides(
colour = guide_legend(override.aes = list(size = 5, shape = c(1, 2, 3, 4, 5, 6)))
)
p
In [ ]:
# Save the plot
ggsave("plots/sensem_supervised_results.png", plot=p, width=10.5, height=4.5)
In [ ]: