r - ggplot中KNN模型的轮廓?

标签 r ggplot2 knn

我有一个使用 contour 绘制的 KNN 模型功能。这是我正在做的事情的一个简单示例(基于 this Purdue exam ):

library(class)
library(nnet)

TrainC<-read.table("http://miner.chem.purdue.edu/Exam1/TrainC.dat")
names(TrainC)<-c("x1","x2","y")

K=15

p <- as.matrix(TrainC[, -3])
xp <- seq(min(TrainC$x1), max(TrainC$x1), length = 50); np <- length(xp)
yp <- seq(min(TrainC$x2), max(TrainC$x2), length = 50)
tp<-TrainC$y

yhat <- knn(p, p, tp, k = K)

plot(TrainC[, 1], TrainC[, 2], xlab = "x1", ylab = "x2", col=as.numeric(TrainC$y)+1)
pt <- expand.grid(x1 = xp, x2 = yp)
Z <- knn(p, pt, tp, k = K)
zp<-class.ind(Z)[,1] - class.ind(Z)[,2]

contour(xp, yp, matrix(zp, np), add = T, levels = 0, labex = 0)

我的问题是:如何在 ggplot 中制作相同的图?特别是,我该如何做 contour ?

最佳答案

d <- transform(melt(matrix(zp, np)), xp=xp[X1], yp=yp[X2])
ggplot(d, aes(xp, yp, z=value)) + 
  geom_contour() + 
  geom_point(aes(x1, x2, colour=y, z=NULL), data=TrainC)

关于r - ggplot中KNN模型的轮廓?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4730799/

相关文章:

r - 通过引导选择两个随机数

r - 如何根据两个不同的组重写列

r - 不要丢弃零计数 : dodged barplot

r - 按组划分的阴影 fiddle 图

c# - 图像识别中的K最近邻

r - 生成 ggplot 网格的多页 pdf 文件

r - 适用于任意数量的结/断点的可扩展分段函数

r - 基于 x 轴在绘图上显示工具提示

python - SKLearn - 主成分分析导致 knn 预测出现可怕的结果

scikit-learn - 为什么 SKLearn 距离度量类没有余弦距离?