Как использовать модель knn для новых данных в R? - PullRequest
0 голосов
/ 31 мая 2018

Я только что написал модель knn в R. Однако я не знаю, как использовать выходные данные для прогнозирования новых данных.

# split into train (treino) and test (teste)
treino_index <- sample(seq_len(nrow(iris)), size = round(0.75*nrow(iris)))
treino <- iris[treino_index, ]
teste <- iris[-treino_index, ]

# take a look at the sample
head(treino)
head(teste)

# save specie from later
treino_especie = treino$Species
teste_especie = teste$Species

# exclude species from train and test dataset
treino = treino[-5]
teste = teste[-5]

# runs knn
library(class)
iris_teste_knn <- knn(train = treino, test = teste, cl= treino_especie,k = 3,prob=TRUE) 


# model performance using cross table
install.packages('gmodels')
library('gmodels')
CrossTable(x=teste_especie, y=iris_teste_knn, prop.chisq=FALSE)

Как применить это к новым данным.Предположим, у меня есть вид со следующими параметрами: Sepal.Length = 5.0, Sepal.Width = 3.3, Petal.Length = 1.3, Petal.Width = 0.1.Откуда я знаю, из какой это породы?

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

в отношении прогнозирования новых данных в модели knn в r, вы можете просто ввести в тестовый аргумент в функции knn, например, следующее

irisk_teste_knn <- knn(train = treino, test = new.Data, cl = treino_especie, k = 3, prob = T)

В модели kNN вы можете указать k в виде суммы квадратного корня иззапись наблюдения. Для оценки модели, возможно, вы могли бы использовать функцию CrossTable, содержащуюся в пакете gmodel, следующим образом:

library(gmodels)
CrossTable(x = new.Data$label, 
           y = iris_teste_knn, 
           prop.chisq = F)
0 голосов
/ 31 мая 2018

Кнн - ленивый классификатор.Он не создает соответствия для прогнозирования позже, как в случае других классификаторов, таких как логистическая регрессия, алгоритмы на основе дерева и т. Д. Он подходит и оценивается одновременно.Когда вы закончите с настройкой параметров производительности, передайте оптимизированные параметры в knn вместе с новыми тестовыми примерами.Использование:

  x = c(5.0, 3.3, 1.3, 0.1)                          # test case
  knn(train = treino , test = x , cl= treino_especie, k = 3,prob=TRUE)
...