【发布时间】:2017-04-13 00:22:56
【问题描述】:
我正在尝试调试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 中迈出了第一步。
感谢您的帮助!
【问题讨论】:
-
您可以使用逻辑向量来选择数组元素。输入
?"["寻求帮助。 -
试试
x = c("a", "b", "c", "d"); x[c(FALSE, TRUE, TRUE, FALSE)]。像这样的逻辑索引/子集在 R 中很常见。 -
pred是来自predict结果的向量。所以看起来模型预测结果为 1 或 2,而该语句只是将结果分别更改为字符串“好”和“坏”。 -
@epi99,您能详细说明一下吗?我正在使用标准函数
predict()进行预测。那么这如何将预测值限制为1和2?strange_binary.csv文件的值是0和1。 -
您是否期待来自
predict()的不同输出?predict是一个通用函数,其作用取决于您传递给它的模型拟合类型以及您提供的type参数。我假设对于您的模型,获得预测类,即只有1和2,是有意义的。如果您想要其他类型的预测,您应该探索适用于您的特定模型的type选项。
标签: r classification training-data