plot.SRCS
: Function to display a grid of heatmaps representing the statistical ranking of one level of the target factor (usually, the algorithm)
vs the rest of levels of the target factor, over several problem configurations characterized by (at most) 3 parameters in addition to the target factor.
animatedplot
: Function to generate an animated video consisting of a temporal sequence of grid plots like those generated by plot.SRCS
.
The function requires software ImageMagick has been installed.
singleplot
: Function to display either a single heatmap representing the statistical ranking of one level of the target factor (usually, the algorithm)
vs the rest of levels of the target factor, over one single problem configurations defined by a combination of values for the problem configuration parameters.## S3 method for class 'SRCS':
plot(x, yOuter, xOuter, yInner, xInner, zInner = "rank",
out.Y.par = list(), out.X.par = list(), inner.X.par = list(),
inner.Y.par = list(), colorbar.par = list(),
color.function = heat.colors, heatmaps.per.row = NULL,
heatmaps.titles = NULL, show.colorbar = TRUE, annotation.lab = NULL,
heat.cell.par = list(), heat.axes.par = list(),
colorbar.cell.par = list(), colorbar.axes.par = list(),
annotation.text.par = list(), ...)
animatedplot(x, filename, path.to.converter, yOuter, xOuter, yInner, xInner,
zInner, width = 800, height = 800, res = 100, pointsize = 16,
delay = 30, type = c("png", "jpeg", "bmp", "tiff"), quality = 75,
compression = c("none", "rle", "lzw", "jpeg", "zip"), annotations = NULL,
...)
singleplot(x, yInner, xInner, zInner = "rank", color.function = heat.colors,
labels.par = list(), colorbar.par = list(), heat.axes.par = list(),
colorbar.axes.par = list(), haxis = TRUE, vaxis = TRUE, title = "",
show.colorbar = TRUE, ...)
x
that will be placed vertically (in the left-most part) and horizontally (on the top), respectively.
Each level of yOuter
(resp. xOuter
) corresponds to a complete row (complete column) of x
that will be placed on the Y axis and on the X axis of every heatmap, respectively.
Each level of yInner
(resp. xInner
) corresponds to a row (column) inside a heatmap.x
that will be represented with a color code inside every heatmap. Usually corresponds to the ranking column of x
,
which will most often contain integer values (negatives are allowed). When the SRCS oblab = TRUE
lab.width = lcm(1)
lab.textpar = list(cex = 1)
levels.loc = c("bottom", "left", "all", "none")
levels.at = NULL
levels.las = 1
hlines = TRUE
ylab = TRUE
xlevels.at = NULL
ylevels.at = NULL
xlab = TRUE
zInner
plot.SRCS
plots a grid with the results over all problem configurations, and should be applied to the object returned by SRCSranks
with
only one performance
column.
singleplot
is used for plotting only one heatmap for a subset of problem configurations
in which the outer X and Y parameters take a fixed value, and should be applied to the object returned by SRCScomparison
.
animatedplot
creates a video from a sequence of plots, intended to show the temporal evolution of the ranking over time.
It should be applied only to the object returned by SRCSranks
when the performance
argument passed to it was a vector of strings,
each of them being the performance column of the data at a given time instant.text, par, axis, SRCSranks, animatedplot, singleplot
.# Example from a Machine Learning problem with noisy data
ranks = SRCSranks(ML1, params = c("Dataset", "Noise type", "Noise ratio"),
target = "Algorithm", performance="Performance", maximize = TRUE, ncores = 2,
paired = TRUE);
singleplot(ranks, yInner = "Noise type",
xInner = "Noise ratio", Algorithm = "C4.5", Dataset = "glass",
)
plot(x = ranks, yOuter = "Dataset", xOuter = "Algorithm", yInner = "Noise type",
xInner = "Noise ratio", out.X.par = list(levels.lab.textpar =
list(col = "white"), levels.bg = "black", levels.border = "white"),
out.Y.par = list(levels.bg = "gray"), colorbar.axes.par = list(cex.axis = 0.8),
show.colorbar = TRUE)
SRCScomparison(ranks, "Algorithm", Dataset = "autos", `Noise type` = "ATT_GAUS",
`Noise ratio`= 10, pvalues = FALSE)
# ---------------------------------------------------
mat = matrix(NA, nrow = nrow(MPBall), ncol = ncol(MPBall))
# First, take the average of the previous performance columns up to each change point
for(j in 6:ncol(MPBall)){
mat[,j] = rowSums(MPBall[,5:j])/(j-5+1)
}
MPBall[,6:ncol(MPBall)] = mat[,6:ncol(MPBall)]
ranksall = SRCSranks(MPBall, params = c("Dim", "CF", "Severity"), target="Algorithm",
test = "tukeyHSD", performance=paste("OffError", seq(from=1, to = 100, by = 24),
sep = "_"), maximize = FALSE, ncores = 2)
# Adjust argument path.to.converter to point to ImageMagick convert utility
animatedplot(x = ranksall, filename = "MPBconv_reduced.gif",
path.to.converter = "C:/Program Files/ImageMagick-6.8.8-Q8/convert.exe",
yOuter = "Algorithm", xOuter = "Dim", yInner = "CF", xInner = "Severity",
zInner = paste0("rank",1:5), delay = 30,
annotations = paste0("At change ",seq.int(from = 1, to = 100, by = 24)),
inner.Y.par = list(levels.at = c("40", "200", "400", "600", "800", "1000"),
lab = "Change\nfrequency", levels.loc = "left"),
heat.cell.par = list(pty = "s"),
inner.X.par = list(levels.at = c("2", "8", "14")),
out.Y.par = list(levels.lab.textpar = list(cex = 1, col = "white"),
levels.bg = "black", levels.border = "white"),
out.X.par = list(lab = "Dimension", levels.bg = "gray"),
colorbar.par = list(levels.at = c("-2", "0", "2")),
colorbar.axes.par = list(cex.axis = 0.8),
show.colorbar = TRUE, height = 500
)
# The full dataset (20 MB) can be downloaded from
# http://decsai.ugr.es/~pjvi/SRCSfiles/MPBall.RData
# (the average must still be computed before plotting, just as in the example above)
Run the code above in your browser using DataLab