【发布时间】:2019-07-31 18:16:04
【问题描述】:
我正在尝试使用 R 中 ISLR 包中的 Auto 数据集来拟合 KNN 模型并获得决策边界。
在这里,我很难确定 3 类问题的决策边界。到目前为止,这是我的代码。我没有得到决策边界。
我在这个网站的其他地方看到了使用 ggplot 的这类问题的答案。但我想使用绘图功能以经典方式得到答案。
library("ISLR")
trainxx=Auto[,c(1,3)]
trainyy=(Auto[,8])
n.grid1 <- 50
x1.grid1 <- seq(f = min(trainxx[, 1]), t = max(trainxx[, 1]), l = n.grid1)
x2.grid1 <- seq(f = min(trainxx[, 2]), t = max(trainxx[, 2]), l = n.grid1)
grid <- expand.grid(x1.grid1, x2.grid1)
library("class")
mod.opt <- knn(trainxx, grid, trainyy, k = 10, prob = T)
prob_knn <- attr(mod.opt, "prob")
我的问题主要是在这段代码之后。我很确定我必须修改以下部分。但我不知道怎么做。我需要在这里使用“嵌套如果”吗?
prob_knn <- ifelse(mod.opt == "3", prob_knn, 1 - prob_knn)
prob_knn <- matrix(prob_knn, n.grid1, n.grid1)
plot(trainxx, col = ifelse(trainyy == "3", "green",ifelse(trainyy=="2", "red","blue")))
title(main = "plot of training data with Desicion boundary K=80")
contour(x1.grid1, x2.grid1, prob_knn, levels = 0.5, labels = "", xlab = "", ylab = "",
main = "", add = T , pch=20)
如果有人可以提出解决此问题的建议,那将是一个很大的帮助。
基本上我需要这样的东西来解决 3 类问题 https://stats.stackexchange.com/questions/21572/how-to-plot-decision-boundary-of-a-k-nearest-neighbor-classifier-from-elements-o
【问题讨论】:
-
这可能是个骗子,请看这里:stackoverflow.com/questions/31234621/…
-
您几乎可以使用相同的代码,如果您收到错误,请使用
as.factor()作为标签变量在ggplot内。
标签: r machine-learning classification knn