kmeans возвращает объект, содержащий координаты центров кластеров в $centers
. Вы хотите, чтобы найти кластер, к которому новый объект находится ближе (с точки зрения суммы квадратов расстояний):
v <- freeny$inputsTrain[1,] # just an example
which.min(sapply(1:10, function(x) sum((v - km$centers[x,])^2)))
Вышеприведенные возвращается 8
- такой же, как кластер, к которому был присвоен первый ряд freeny$inputsTrain
,
В альтернативном подходе вы можете сначала создать кластеризацию, а затем использовать контролируемую машину для обучения модели, которую вы затем будете использовать в качестве предсказания. Однако качество модели будет зависеть от того, насколько хорошо кластеризация действительно представляет структуру данных и сколько данных у вас есть. Я осмотрел свои данные с PCA (мой любимый инструмент):
pca <- prcomp(freeny$inputsTrain, scale.= TRUE)
library(pca3d)
pca3d(pca)
У меня сложилось впечатление, что у вас есть не более 6-7 четких классов для работы с:

Однако следует запускать больше kmeans
диагностические (локтевые участки и т.д.), чтобы определить оптимальное количество кластеров:
wss <- sapply(1:10, function(x) { km <- kmeans(freeny$inputsTrain,x,iter.max = 100) ; km$tot.withinss })
plot(1:10, wss)

Этот участок предлагает 3-4 класса в качестве оптимального. Для более сложного и информативного подхода проконсультируйтесь с кламограммами: http://www.r-statistics.com/2010/06/clustergram-visualization-and-diagnostics-for-cluster-analysis-r-code/