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