我有以下代码生成带有以下图形的随机数据集,
x1=abs(rnorm(200))
x2=abs(rnorm(200))-7*x1^2
plot(x1,x2)
我的目标是分离数据,以使data.frame中的前100点为蓝色,而其余100点为红色。所以我有两个简单的问题, 1)如何分离数据,以便沿x1移动时,前100个点是蓝色的,另一个是红色的?我在下面添加了一张图片以进行说明,请注意使用截图工具来吸引我的艺术才能。 2)如果在分配颜色之后,一个简单的z = data.frame(x1,x2,colours)足以将数据放入数据集中,以便我可以使用一些基本的机器学习工具(例如SVM)运行数据,装袋和提振?
为帮助喝彩
答案 0 :(得分:1)
set.seed(42)
dat <- data.frame(x1 = abs(rnorm(200)))
dat$x2 <- abs(rnorm(200)) - 7*dat$x1^2
dat$col <- ifelse(rank(dat$x1) <= 100, "blue", "red")
plot(x2 ~ x1, data = dat, col = col)
# also: plot(dat$x1, dat$x2, col = dat$col)
“前100”是主观的,具体取决于您的需求和数据的上下文。可能还需要与原点(毕达哥拉斯)的欧几里得距离,曼哈顿距离或其他某种估值。或x1 <= mean(x1)
或x1 <= median(x1)
。很多方法,这只是一种方法,我们使用ifelse
来进行区分/分配。