1
我想看看如果SOM算法可以用於分類預測。 我曾經在下面的代碼,但我看到分類結果遠不是正確的。例如,在測試數據集中,我獲得的不僅僅是我在訓練目標變量中的3個值。我如何創建一個與訓練目標變量保持一致的預測模型?如何使用SOM算法進行分類預測
library(kohonen)
library(HDclassif)
data(wine)
set.seed(7)
training <- sample(nrow(wine), 120)
Xtraining <- scale(wine[training, ])
Xtest <- scale(wine[-training, ],
center = attr(Xtraining, "scaled:center"),
scale = attr(Xtraining, "scaled:scale"))
som.wine <- som(Xtraining, grid = somgrid(5, 5, "hexagonal"))
som.prediction$pred <- predict(som.wine, newdata = Xtest,
trainX = Xtraining,
trainY = factor(Xtraining$class))
而結果:
$unit.classif
[1] 7 7 1 7 1 11 6 2 2 7 7 12 11 11 12 2 7 7 7 1 2 7 2 16 20 24 25 16 13 17 23 22
[33] 24 18 8 22 17 16 22 18 22 22 18 23 22 18 18 13 10 14 15 4 4 14 14 15 15 4
感謝@Kevin Dallaporta的代碼示例。我有2個問題,首先我使用了trainY = factor(Xtraining $ class),但是我沒有在預測函數中看到它。第二,如何將類預測結果附加到測試數據集? – mql4beginner
我很高興它幫助!似乎'trainY =因素'參數存在於科諾寧的'V2.X'中,並在'V3.X'中消失。我不知道它應該做什麼,但是有或沒有,回報是相同的,並且在2017年3月的文檔中沒有跟蹤。在我提供的代碼中,預測結果在'error.df $ corrected'中,因此您可以附加測試:'test $ predicted < - error.df $ corrected' – kdallaporta