2014-03-05 77 views
0

這是Kohonen的包索姆功能的使用的一個典型的例子:SOM例如

library("kohonen") 
Loading required package: class 
data("wines") 
wines.sc <- scale(wines) 
set.seed(7) 
wine.som <- som(data = wines.sc, grid = somgrid(5, 4, "hexagonal")) 
plot(wine.som, main = "Wine data") 

,這是對輸出的鏈接: SOM plot

任何人都可以向我解釋了在代碼中看到的set.seed命令的作用。此外,情節命令如何決定着色方案並繪製相應的圖例而不在命令中提及?

回答

-3
library(fortunes) 
fortune("WTFM") 

這都記錄在TFM中。那些WTFM不想再次在郵件列表中使用WTFM的人。 RTFM。 - 巴里Rowlingson R-幫助(2003年10月)

?set.seed 
0

我沒有檢查你提及的R源代碼,但我可以從原來的SOM算法告訴你,碼本向量的隨機初始化是必須的。我想你知道K-means(如果不是我推薦在進入SOM之前閱讀它)。 SOM和K-Means的初始化共享某些代表向量(也稱爲原型)必須隨機位於輸入空間中的方式。爲了實現你需要一個隨機生成器,因此你需要一個種子來初始化它。另外,在每個訓練階段,有些版本的SOM隨機選擇輸入數據,而不是按順序輸入,這也需要一個隨機生成器。

爲了使評論更完整,一些作者推薦使用其他方式來初始化碼本矢量,這些矢量不是隨機的,例如使用PCA ...但這是另一回事。

0

隨機種子的東西已經被解釋,但我可以幫助你的切片和圖例的顏色。

SOM對象的繪圖函數使用調色板,這取決於矩陣中的類/列數。它創建了一個範圍的顏色,基於我們可以稱之爲「主要顏色」。 在你的例子中,主要顏色必須是「紅色」,「黃色」,「綠色」,「藍色」和「紫色」,並且調色板會自動添加匹配的顏色以填充這些「主要顏色」之間的空格。

可以選擇「palette.name」,或者通過使用一個預先定義的調色板功能如使用另一個調色板由於變量「彩虹()」,「topo.colors()」, 「cm.colors()」...或由創建您自己的主色調範圍,使用colorRampPalette()

下面是一個例子:

如果你想要的顏色從粉紅色到黃色,則藍終於在你的SOM圖形棕色去,你可以這樣寫:

data("wines") 

#You have to define a new palette function, that can create the colour gradient #depending on the number of classes you want to represent 

PALETTE.WINES <- colorRampPalette(c("pink", "yellow", "blue", "brown")) 

som.wines <- som(scale(wines), grid = somgrid(4, 4, "hexagonal")) 

#Finally remember to fill in the argument "palette.name" with your new palette function 
plot(som.wines, main = "Wine data", palette.name=PALETTE.WINES) 

在這裏你是!:) Wine SOM with new colour range

如果你想影響每一列的特殊顏色,你可以輸入儘可能多的顏色,你想要的。在前面的例子中,如果你只有四個類別,一個將是粉紅色,第二個是黃色,第三個是藍色,最後是棕色,沒有漸變。

我希望這將有助於所有仍想改變顏色的人。 我強烈建議你通過尋找伯爵F.格林的呈現,以尋找更多的信息,在R.

色彩的運用

你也可以看到這個鏈接有更多的細節:https://www.r-bloggers.com/color-palettes-in-r/