Повторяемость результатов UMAP в R: решение

Довольно быстро отыскалась причина странного поведения алгоритма UMAP в разных средах, о которой я писал ранее. Всё оказалось очень просто, но в довольно неожиданном месте: версия не только библиотеки umap, но и самой среды выполнения R. Таким образом, для идентичной работы алгоритма на разных платформах, требуется не только одинаковая версия используемой библиотеки, но и самой среды.

Итак, наш код с данными по ирисам:

library(umap)
library(dbscan)

iris.data <- iris[,-5]
iris.norm <- scale(iris.data)

#set.seed(15)
iris.umap <- umap(as.matrix(iris.data) , random_state = 15)
iris.clus <- dbscan(iris.umap$layout, eps = 0.7, minPts = 5)


spec <- ifelse(iris$Species == 'setosa', 1, 
                 ifelse(iris$Species == 'versicolor', 2, 
                        ifelse(iris$Species == 'virginica', 3, -20)))
plot(iris.umap$layout, bg=iris.clus$cluster + 1L, pch=20 + spec , xlab = 'X', lab = 'Y', cex=2)

Результаты выполнения этого кода на трёх разных машинах, две из которых имеют одинаковую ОС:

Ubuntu Linux 16 (home)

umap 0.2.5.0 в R 3.6.3 в среде Linux Ubuntu 16
UMAP в R на Ubuntu Linux 16 (home)

platform x86_64-pc-linux-gnu
arch x86_64
os linux-gnu
system x86_64, linux-gnu
status
major 3
minor 6.3
year 2020
month 02
day 29
svn rev 77875
language R
version.string R version 3.6.3 (2020-02-29)
nickname Holding the Windsock

umap 0.2.5.0

Ubuntu Linux 16 (work)

umap 0.2.5.0 в R 3.6.3 в среде Linux Ubuntu 16
UMAP в R на Ubuntu Linux 16 (work)

platform x86_64-pc-linux-gnu
arch x86_64
os linux-gnu
system x86_64, linux-gnu
status
major 3
minor 6.3
year 2020
month 02
day 29
svn rev 77875
language R
version.string R version 3.6.3 (2020-02-29)
nickname Holding the Windsock

umap 0.2.5.0

Microsoft Windows 7

umap 0.2.5.0 в R 3.6.3 в среде Windows 7
UMAP в R на Microsoft Windows 7

platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 6.3
year 2020
month 02
day 29
svn rev 77875
language R
version.string R version 3.6.3 (2020-02-29)
nickname Holding the Windsock

umap 0.2.5.0

Share

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *