pareto_opt
finds the pareto frontier of filter functions based on
Shannon indices and spread measures with function psel
from R package `rPref`.
pareto_opt(res_filter, ...)
res_filter | The data.frame of Shannon indices and spread measures under different filter functions. The first column must be names of filter functions, and the second and third columns should be the shannon indices and spread measures. |
---|---|
... | Additional arguments for |
A data.frame of the names of filter functions in the pareto frontier, as well as their Shannon indices and spread measures.
filter_names <- c('Coordinate','Eccen','LInf','Ref','DTM','Gaussian','PCA') res_filter <- data.frame(Filter = filter_names, weighted_shannon = c(1.389, 1.421, 1.453, 1.158, 1.345, 1.399, 1.349), spread_measure = c(2.767, 4.101, 2.607, 4.001, 4.119, 3.957, 2.034)) res <- pareto_opt(res_filter) res # Illustration of Pareto frontier library(ggplot2) res <- pareto_opt(res_filter, top = nrow(res_filter)) res$.level[res$.level>1] <- 'Others' res$.level[res$.level==1] <- 'Frontier' class(res) <- 'data.frame' gp <- ggplot(res, aes(x = weighted_shannon, y = spread_measure, color = factor(.level), label = Filter)) + geom_point(size = 3) + geom_step(aes(group = .level), data = res[res$.level=='Frontier',], direction = 'vh', size = 2) + geom_label(aes(fill = factor(.level)), colour = 'white', fontface = 'bold') + labs(fill='') + labs(color='') + xlab('Shannon index') + ylab('Spread measure') gp # The red line(s) is the Pareto frontier, and all the points on the top right # side of these line(s) are not potentially optimal.