我正在使用kohonenR 中的庫訓練一個自組織映射 (SOM),當我調整呼叫rlen中的引數時,我得到了一些令人困惑的結果som。根據幫助檔案,rlen是“將完整資料集呈現給網路的次數”,看起來很簡單。當我通過plot(som_model, type="changes")不同的值查看演算法的收斂性時,會出現令人困惑的結果rlen。該圖顯示了迭代與資料向量的平均距離,根據我的理解,當我們看到它高原時,我們可以假設演算法已經收斂。但如下所示,收斂所需的迭代次數似乎是所選迭代次數的函式。
使用內置wines資料集,我首先通過以下方式繪制 300 次迭代的結果:
som_model = som(scale(wines), grid = somgrid(6, 4, "hexagonal"), rlen = 300)
par(mar = c(5, 5, 1, 1))
plot(som_model, type="changes", main = "rlen=300")
可以看出,平均距離在~200 次迭代后趨于穩定

如果我然后用 重復此操作rlen=1000,我會得到以下資訊:

現在平均距離在大約 600 次迭代時達到穩定水平。我想有一些一致性,高原出現在迭代次數的大約 2/3 處。但是,如果我只是更改將資料呈現給 SOM 網路的次數,那么為什么在這兩種情況下都不會在 200 次迭代時收斂。我猜我對演算法實際在做什么有誤解。非常感謝任何人可以提供的任何幫助。
uj5u.com熱心網友回復:
從小插圖:
隨著多次輸入訓練向量,收斂的幾個引數迫使調整變得越來越小,從而導致地圖穩定為表示。
引數將被調整為rlen--a 更大rlen允許更小的步長并且可能更穩定的收斂。因此,如果模型難以收斂,rlen則可能需要更大的值。而且,顯然,如果rlen太小,它可能不會表現出收斂(例如,rlen = 60在wines資料集上)。
另一種思考方式——輸入模型的每個訓練向量的權重與 成反比rlen,因此需要更多的訓練向量來實作與具有較大rlen值的初始向量的相同“移動”。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/521638.html
標籤:r索姆自组织图
