Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 选择预测KNN算法中的回归/分类误差_R_Machine Learning - Fatal编程技术网

R 选择预测KNN算法中的回归/分类误差

R 选择预测KNN算法中的回归/分类误差,r,machine-learning,R,Machine Learning,我试图使用KNN来创建一个选择预测模型。数据格式如下,我试图预测一个人是选择X还是Y 运行代码时,出现以下错误: “训练中的默认值(训练[,1:7],训练[,8],方法=“knn”): 您正在尝试进行回归,并且您的结果只有两个可能的值。您正在尝试进行分类吗?如果是,请使用2级因子作为您的结果列。” 以下是相关代码的其余部分: index <- createDataPartition(dataset_training$choiceprobX, p=0.5, list=FALSE) prin

我试图使用KNN来创建一个选择预测模型。数据格式如下,我试图预测一个人是选择X还是Y

运行代码时,出现以下错误:

“训练中的默认值(训练[,1:7],训练[,8],方法=“knn”): 您正在尝试进行回归,并且您的结果只有两个可能的值。您正在尝试进行分类吗?如果是,请使用2级因子作为您的结果列。”

以下是相关代码的其余部分:

index <- createDataPartition(dataset_training$choiceprobX, p=0.5, list=FALSE)
print(dataset_training$choiceprobX)
index
training <- dataset_training[index,]
testing <- dataset_training[-index,]
training
testing
model_knn <- train(training[, 1:7], training[, 8], method='knn')

index虽然我不怎么使用
r
但是我可以找出代码中的一些错误

如果目标变量在一列中编码为
1
0

添加一个新列,该列将作为目标变量,如下所示:

dataset_training$target <- ifelse(dataset_training$choiceprobX == 1,1,0)

现在试着适应这个模型,你可能仍然会得到一些错误,你可以在评论中发布

目标变量为0,1数值。您需要将其转换为系数:

library(caret)

dataset_training = MASS::Pima.te
dataset_training$type = as.numeric(dataset_training$type)-1
head(dataset_training)

  npreg glu bp skin  bmi   ped age type
1     6 148 72   35 33.6 0.627  50    1
2     1  85 66   29 26.6 0.351  31    0
3     1  89 66   23 28.1 0.167  21    0
4     3  78 50   32 31.0 0.248  26    1
5     2 197 70   45 30.5 0.158  53    1
6     5 166 72   19 25.8 0.587  51    1

index <- createDataPartition(dataset_training$type, p=0.5, list=FALSE)
training <- dataset_training[index,]
model_knn <- train(training[, 1:7], training[, 8], method='knn')

Warning message:
In train.default(training[, 1:7], training[, 8], method = "knn") :
  You are trying to do regression and your outcome only has two possible values Are you trying to do classification?[..]
dataset_training$type = factor(dataset_training$type)
index <- createDataPartition(dataset_training$type, p=0.5, list=FALSE)
training <- dataset_training[index,]
model_knn <- train(training[, 1:7], training[, 8], method='knn')
库(插入符号)
数据集_training=MASS::Pima.te
dataset\u training$type=as.numeric(dataset\u training$type)-1
主管(大学培训)
npreg glu bp皮肤bmi ped年龄类型
1     6 148 72   35 33.6 0.627  50    1
2     1  85 66   29 26.6 0.351  31    0
3     1  89 66   23 28.1 0.167  21    0
4     3  78 50   32 31.0 0.248  26    1
5     2 197 70   45 30.5 0.158  53    1
6     5 166 72   19 25.8 0.587  51    1

你在用插入符号吗?
dataset_training$type = factor(dataset_training$type)
index <- createDataPartition(dataset_training$type, p=0.5, list=FALSE)
training <- dataset_training[index,]
model_knn <- train(training[, 1:7], training[, 8], method='knn')