# NOT RUN {
library(RSSL)
library(dplyr)
library(ggplot2)
library(tidyr)
set.seed(1)
df_orig <- generateSlicedCookie(100,expected=TRUE)
df <- df_orig %>% add_missinglabels_mar(Class~.,0.95)
g_s <- SVM(Class~.,df,C=1,scale=TRUE,x_center=TRUE)
g_s4 <- S4VM(Class~.,df,C1=1,C2=0.1,lambda_tradeoff = 3,scale=TRUE,x_center=TRUE)
labs <- g_s4@labelings[-c(1:5),]
colnames(labs) <- paste("Class",seq_len(ncol(g_s4@labelings)),sep="-")
# Show the labelings that the algorithm is considering
df %>%
filter(is.na(Class)) %>%
bind_cols(data.frame(labs,check.names = FALSE)) %>%
select(-Class) %>%
gather(Classifier,Label,-X1,-X2) %>%
ggplot(aes(x=X1,y=X2,color=Label)) +
geom_point() +
facet_wrap(~Classifier,ncol=5)
# Plot the final labeling that was selected
# Note that this may not correspond to a linear classifier
# even if the linear kernel is used.
# The solution does not seem to make a lot of sense,
# but this is what the current implementation returns
df %>%
filter(is.na(Class)) %>%
mutate(prediction=g_s4@predictions) %>%
ggplot(aes(x=X1,y=X2,color=prediction)) +
geom_point() +
stat_classifier(color="black", classifiers=list(g_s))
# }
Run the code above in your browser using DataLab