r中语句的含义?
我试图在r中语句的含义?,r,classification,training-data,R,Classification,Training Data,我试图在R中调试代码,以便理解它。声明如下: library(rpart) X = read.csv("strange_binary.csv"); fit = rpart(c ~ X + X.1 + X.2 + X.3 + X.4 + X.5 + X.6 + X.7 + X.8 + X.9, method ="class",data=X,minbucket=1,cp=.04); printcp(fit); fit = prune(fit,cp=.04); pred = predict(fit
R
中调试代码,以便理解它。声明如下:
library(rpart)
X = read.csv("strange_binary.csv");
fit = rpart(c ~ X + X.1 + X.2 + X.3 + X.4 + X.5 + X.6 + X.7 + X.8 + X.9, method ="class",data=X,minbucket=1,cp=.04);
printcp(fit);
fit = prune(fit,cp=.04);
pred = predict(fit,X[,1:10],type="vector") # test the classifier on the training data
pred[pred == 2] = "bad"
pred[pred == 1] = "good"
其目的是构建分类器并在训练数据上进行测试。但是,我不理解以下陈述:
pred[pred == 2] = "bad"
pred[pred == 1] = "good"
pred==2
和pred==1
可能是TRUE
或FALSE
-如何使用它来索引向量?对不起,我的天真的问题,我来自C++背景,在R.中采取了小步骤。
谢谢你的帮助 这是一种说法:
将值“bad”指定给pred的子集,其中pred等于2
pred[pred == 2] = "bad"
将值“good”指定给pred的子集,其中pred等于1
pred[pred == 1] = "good"
一种更像R的赋值方式如下所示:
pred[pred == 2] <- "bad"
pred[pred == 1] <- "good"
它将帮助您了解每一步发生的情况。您可以使用逻辑向量来选择数组元素。键入
?“[”
以获取帮助。尝试类似x=c(“a”、“b”、“c”、“d”);x[c(FALSE、TRUE、TRUE、FALSE)]
。像这样的逻辑索引/子集设置在R中非常常见。pred
是来自predict
结果的向量。因此,模型似乎将结果预测为1或2,而该语句只是将结果更改为字符串“good”和“bad”@epi99,你能详细说明一下吗?我正在使用标准函数predict()
进行预测。这是如何将预测值限制为1
和2
的呢?strange\u binary.csv
文件的值分别为0
和1
。你希望predict()有不同的输出吗
?predict
是一个通用函数,根据传递给它的模型拟合类型和您给出的type
参数,它的作用不同。我假设对于您的模型,获取预测类,即仅1
和2
,是有意义的。如果您想要其他类型的预测,您应该探索e为您的特定型号键入
选项。我不认为使用什么是pred
?我的意思是问,哪一列(或哪一行)的pred
将受到影响?为什么会受到影响?我相信大多数样式指南仍然建议pred是您分配此pred=predict(fit,X[,1:10],type=“vector”)结果的变量
这是前面两行等式的预测结果。@马吕斯,任何一种赋值方式都是完全可以接受和等效的,因此都会起作用,这只是R中的赋值惯例。这不是我解释的重点,只是我认为R的新手可能需要的东西,如果他们不习惯的话我可能会在其他解释中找到它。
str(fit)
str(pred)