【发布时间】:2015-06-21 16:02:42
【问题描述】:
我正在使用 R 来实现 knn。 'class' 包中的 knn 函数包含一个名为 cl 的参数:
knn(train, test, cl, k = 1, l = 0, prob = FALSE, use.all = TRUE)
在包文档中写到 cl 是训练集真正分类的一个因素。不知道是什么意思!有人可以帮忙吗?
【问题讨论】:
我正在使用 R 来实现 knn。 'class' 包中的 knn 函数包含一个名为 cl 的参数:
knn(train, test, cl, k = 1, l = 0, prob = FALSE, use.all = TRUE)
在包文档中写到 cl 是训练集真正分类的一个因素。不知道是什么意思!有人可以帮忙吗?
【问题讨论】:
假设您试图预测结果 y。 cl 是训练集的 y 值。查看下面的链接。请注意,当他们定义 cl=iris.trainLabels 时,他们使用 iris 数据集的第 5 列,即物种。 所以 cl 是物种类型。然后knn算法预测物种类型。
【讨论】:
正如您所指出的,CL 代表分类。 CL 应包含属于训练测试的响应变量的类别。如果将X定义为自变量,将Y定义为自变量,然后从两者中定义一个训练集和一个测试集,那么knn应该被称为:
train <- sample(1 : dim(data)[1], round(dim(data)[1] / 3 * 2))
trainX <- data[train, ]
testX <- data[-train, ]
trainCl <- factor(data[train, "classifications"])
testCl <- factor(data[-train, "classifications"])
knnPred <- knn(trainX, testX, trainCl, k=1)
# confusion matrix
table(knnPred, testCl)
【讨论】: