小编stu*_*123的帖子

使用R获取KNN分类器的决策边界

我正在尝试拟合KNN模型并使用R中的ISLR包中的Auto数据集获取决策边界。

在这里,我很难确定3类问题的决策边界。到目前为止,这是我的代码。我无法确定决策边界。

我在该网站的其他地方看到了使用ggplot解决此类问题的答案。但是我想使用plot函数以经典方式获得答案。

 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") 
Run Code Online (Sandbox Code Playgroud)

我的问题主要是在此代码段之后。我非常确定我必须修改以下部分。但是我不知道如何。我是否需要在此处使用“嵌套的条件”?

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 = …
Run Code Online (Sandbox Code Playgroud)

r classification machine-learning knn

8
推荐指数
1
解决办法
282
查看次数

从 R 创建一个由零和一组成的矩阵

我想根据以下数据创建一个由 0 和 1 组成的矩阵。

    id <-c(1,1,1,2,2,3)
    x<- c(5,7,8,2,6,5)
    data_toy <- data.frame(id,x)
   data_toy%>% count(id) 

> data_toy%>% count(id) 
  id n
1  1 3
2  2 2
3  3 1
Run Code Online (Sandbox Code Playgroud)

所以根据数据,我需要创建一个 6X3 矩阵,其中第一列应该是 (1,1,1,0,0,0),第二列应该是 (0,0,0,1,1,0) 所以在。

你能建议什么来做到这一点吗?

谢谢

r matrix

5
推荐指数
1
解决办法
92
查看次数

在R中使用pivot_longer旋转多组列

我想在数据框中旋转多组变量。我的数据如下所示:

require(dplyr)
require(tidyr)
x_1=rnorm(10,0,1)
x_2=rnorm(10,0,1)
x_3=rnorm(10,0,1)
y_1=rnorm(10,0,1)
y_2=rnorm(10,0,1)
aid=rep(1:5,2)
data=data.frame(aid, x_1,x_2,y_1,y_2)

> data
   aid         x_1        x_2         y_1         y_2
1    1 -0.82305819  0.9366731  0.95419200  2.29544019
2    2  0.64424320 -0.2807793  0.51303834  0.02560463
3    3 -1.11108822 -0.2475625  0.05747951 -0.51218368
4    4 -1.04026895 -0.4138653  0.57751999  0.60942652
5    5  1.29097040 -1.7829966  1.59940532  0.75868562
6    1 -0.57845406 -1.0002074  0.04302291  0.86766265
7    2  0.08996163 -0.7949632 -2.10422124 -0.43432995
8    3  0.14331978  0.4203010 -1.12748270  0.14484670
9    4 -0.25207187  1.5559295  0.23621422 -0.04719046
10   5 -0.25617731  0.6241852 -1.21131110  1.02236458
Run Code Online (Sandbox Code Playgroud)

我想分别旋转 x …

pivot r dplyr tidyr tidyverse

4
推荐指数
1
解决办法
1290
查看次数

使用R查找所有小于给定数字的3个数字组合

我有以下一组数字10、17、5、7、15。从这些数字中,我需要找到总和小于或等于35的所有3个数字组合。在一个这样的组合中,特定数字不应包含一次以上。例如:10,10,5是不正确的组合,因为10重复了两次。

我尝试了这段代码,但没有给出我所需要的。

library(data.table)
df=expand.grid(x1=c(10,17,5,7,15),
               x2=c(10,17,5,7,15),
               x3=c(10,17,5,7,15)
               )
setDT(df)
df[(x1+x2+x3) <= 35]
Run Code Online (Sandbox Code Playgroud)

上面代码输出的一部分如下,

  x1 x2 x3
 1: 10 10 10
 2:  5 10 10
 3:  7 10 10
 4: 15 10 10
 5:  5 17 10
 6:  7 17 10
 7: 10  5 10
Run Code Online (Sandbox Code Playgroud)

根据上述输出,可以看到一个数字出现了多次。任何人都可以建议获得预期结果的提示吗?

谢谢

combinations r dynamic

3
推荐指数
2
解决办法
133
查看次数

使用R中的lapply生成具有不同参数的随机数

我需要生成具有不同参数的随机数(二项式).我试图使用lapply函数来做到这一点.

到目前为止这是我的代码:

lst1 <- list(n=c(10,20), size=c(100,200), q=c(0.1,0.2)) #list of variables

lapply(lst1, function(x) {
  rbinom(x[1],x[2],x[3])
})
Run Code Online (Sandbox Code Playgroud)

似乎有错误.

然后我也尝试了这种方式,

lapply(lst1, function(x) {
  rbinom(x$n,x$size,x$q)
})
Run Code Online (Sandbox Code Playgroud)

我仍然收到错误.任何人都可以帮我弄清楚错误吗?

谢谢.

simulation r lapply

2
推荐指数
1
解决办法
86
查看次数