我正在做一些实验来了解 SOM(自组织地图)的工作原理,我尝试将该算法应用于电离层数据集。并发现代码图模型的行为很奇怪(如果应用了超过 14 个变量)..这是我的测试代码片段:
library(kohonen)
library(mlbench) #Ionosphere dataset is loaded from here
data(Ionosphere)
instance_data = Ionosphere
#====================================== Applying 5 Variable ======================================
data_train_matrix <- as.matrix(instance_data[,3:7])
som_grid <- somgrid(xdim = 5, ydim=5, topo="hexagonal")
som_model <- som(data_train_matrix, grid=som_grid,
rlen=500, alpha=c(0.1,0.01),
keep.data = TRUE)
plot(som_model, type="codes")
#========================================= 10 Columns ==============================================
data_train_matrix <- as.matrix(instance_data[,3:12])
som_grid <- somgrid(xdim = 5, ydim=5, topo="hexagonal")
som_model <- som(data_train_matrix, grid=som_grid,
rlen=500, alpha=c(0.1,0.01),
keep.data = TRUE)
plot(som_model, type="codes")
#========================================= 14 Variable ==============================================
data_train_matrix <- as.matrix(instance_data[,5:18])
som_grid <- somgrid(xdim = 5, ydim=5, topo="hexagonal")
som_model <- som(data_train_matrix, grid=som_grid,
rlen=500, alpha=c(0.1,0.01),
keep.data = TRUE)
plot(som_model, type="codes")
#========================================= 15 Variable ==============================================
data_train_matrix <- as.matrix(instance_data[,5:19])
length_col = length(colnames(data_train_matrix))
som_grid <- somgrid(xdim = 5, ydim=5, topo="hexagonal")
som_model <- som(data_train_matrix, grid=som_grid,
rlen=500, alpha=c(0.1,0.01),
keep.data = TRUE)
plot(som_model, type="codes")
我想知道这在情节代码中意味着什么?看到这个我的想法:
1) 这是否表明 SOM 模型不支持同时绘制多个变量?
2)或者最后一张图有什么含义吗?
3) 另外,如果像上图那样出现绘图代码,继续使用 SOM 进行分析是否安全?
请帮忙提供一些反馈,谢谢您的支持:)
我也遇到了和你一样的问题。我尝试绘制包含 17 个变量的 SOM 然而,我发现了这个:
我的代码(作为示例):
plot(som.model, type = "codes",
codeRendering = "segments",
bgcol = rainbow(9)[clust$cluster],
shape = "round",
main = "Cluster Map")
如果添加以下行:
codeRendering = "segments"
,您就会得到所需的内容。