Title: | Statistical Evaluation of UMAP Dimensionality Reductions |
Version: | 1.4 |
Description: | A metric expressing the quality of a UMAP layout. This is a package that contains the Saturn_coefficient() function that reads an input matrix, its dimensionality reduction produced by UMAP, and evaluates the quality of this dimensionality reduction by producing a real value in the [0; 1] interval. We call this real value Saturn coefficient. A higher value means better dimensionality reduction; a lower value means worse dimensionality reduction. Reference: Davide Chicco et al. "The Saturn coefficient for evaluating the quality of UMAP dimensionality reduction results" (2025, in preparation). |
License: | GPL-3 |
URL: | https://github.com/davidechicco/SaturnCoefficient_R_package |
BugReports: | https://github.com/davidechicco/SaturnCoefficient_R_package/issues |
Depends: | R (≥ 4.0.0) |
Imports: | MatrixCorrelation, ProjectionBasedClustering, stats, umap |
Suggests: | knitr, rmarkdown, testthat (≥ 3.0.0) |
VignetteBuilder: | knitr |
Config/testthat/edition: | 3 |
Encoding: | UTF-8 |
RoxygenNote: | 7.3.2 |
NeedsCompilation: | no |
Packaged: | 2025-02-14 14:40:35 UTC; davide |
Author: | Davide Chicco |
Maintainer: | Davide Chicco <davidechicco@davidechicco.it> |
Repository: | CRAN |
Date/Publication: | 2025-02-14 15:20:01 UTC |
Function that calculates the Saturn coefficient to quantify the quality of a UMAP dimensionality reduction
Description
Function that calculates the Saturn coefficient to quantify the quality of a UMAP dimensionality reduction
Usage
Saturn_coefficient(original_matrix, umap_output_layout, VERBOSE)
Arguments
original_matrix |
input matrix |
umap_output_layout |
output matrix of UMAP applied to original_matrix |
VERBOSE |
prints some intermediate message to standard output or not |
Value
a real value containing the Saturn coefficient
Examples
this_nrows <- 200
this_ncols <- 100
this_min <- 0
this_max <- 10000
noise_random_matrix <- matrix(runif(n = this_nrows * this_ncols,
min = this_min, max = this_max), nrow = this_nrows)
input_matrix <- as.matrix(noise_random_matrix)
these_nearest_neighbors <- 15
this_min_dist <- 0.05
library("umap")
custom.settings <- umap::umap.defaults
custom.settings$"n_neighbors" <- these_nearest_neighbors
custom.settings$"min_dist" <- this_min_dist
x_umap <- umap::umap(input_matrix, config=custom.settings)
this_verbose <- FALSE
thisSaturn <- Saturn_coefficient(input_matrix, x_umap$"layout", this_verbose)
cat("Saturn coefficient = ", thisSaturn, "\n", sep="")
Function that calculates the Saturn coefficient, trustworthiness score, and the continuity score of a UMAP dimensionality reduction
Description
Function that calculates the Saturn coefficient, trustworthiness score, and the continuity score of a UMAP dimensionality reduction
Usage
calculatesSaturnContinuityTrustworthiness(
original_matrix,
umap_output_layout,
VERBOSE
)
Arguments
original_matrix |
input matrix |
umap_output_layout |
output matrix of UMAP applied to original_matrix |
VERBOSE |
prints some intermediate message to standard output or not |
Value
a dataframe containing the Saturn coefficient, the trustworthiness score, and the continuity score
Examples
this_nrows <- 200
this_ncols <- 100
this_min <- 0
this_max <- 10000
noise_random_matrix <- matrix(runif(n = this_nrows * this_ncols,
min = this_min, max = this_max), nrow = this_nrows)
input_matrix <- as.matrix(noise_random_matrix)
these_nearest_neighbors <- 15
this_min_dist <- 0.05
library("umap")
custom.settings <- umap::umap.defaults
custom.settings$"n_neighbors" <- these_nearest_neighbors
custom.settings$"min_dist" <- this_min_dist
x_umap <- umap::umap(input_matrix, config=custom.settings)
this_verbose <- FALSE
theseThreeMetrics <- calculatesSaturnContinuityTrustworthiness(input_matrix,
x_umap$"layout", this_verbose)
print(theseThreeMetrics)
Function that calculates the continuity score of a UMAP dimensionality reduction
Description
Function that calculates the continuity score of a UMAP dimensionality reduction
Usage
continuity_score(original_matrix, umap_output_layout, VERBOSE)
Arguments
original_matrix |
input matrix |
umap_output_layout |
output matrix of UMAP applied to original_matrix |
VERBOSE |
prints some intermediate message to standard output or not |
Value
a real value containing the continuity score
Examples
this_nrows <- 200
this_ncols <- 100
this_min <- 0
this_max <- 10000
noise_random_matrix <- matrix(runif(n = this_nrows * this_ncols,
min = this_min, max = this_max), nrow = this_nrows)
input_matrix <- as.matrix(noise_random_matrix)
these_nearest_neighbors <- 15
this_min_dist <- 0.05
library("umap")
custom.settings <- umap::umap.defaults
custom.settings$"n_neighbors" <- these_nearest_neighbors
custom.settings$"min_dist" <- this_min_dist
x_umap <- umap::umap(input_matrix, config=custom.settings)
this_verbose <- FALSE
thisCon <- continuity_score(input_matrix, x_umap$"layout", this_verbose)
cat("continuity = ", thisCon, "\n", sep="")
Function that calculates the trustworthiness score of a UMAP dimensionality reduction
Description
Function that calculates the trustworthiness score of a UMAP dimensionality reduction
Usage
trustworthiness_score(original_matrix, umap_output_layout, VERBOSE)
Arguments
original_matrix |
input matrix |
umap_output_layout |
output matrix of UMAP applied to original_matrix |
VERBOSE |
prints some intermediate message to standard output or not |
Value
a real value containing the trustworthiness score
Examples
this_nrows <- 200
this_ncols <- 100
this_min <- 0
this_max <- 10000
noise_random_matrix <- matrix(runif(n = this_nrows * this_ncols,
min = this_min, max = this_max), nrow = this_nrows)
input_matrix <- as.matrix(noise_random_matrix)
these_nearest_neighbors <- 15
this_min_dist <- 0.05
library("umap")
custom.settings <- umap::umap.defaults
custom.settings$"n_neighbors" <- these_nearest_neighbors
custom.settings$"min_dist" <- this_min_dist
x_umap <- umap(input_matrix, config=custom.settings)
this_verbose <- FALSE
thisTW <- trustworthiness_score(input_matrix, x_umap$"layout", this_verbose)
cat("trustworthiness = ", thisTW, "\n", sep="")