小编Ar2*_*254的帖子

使用rpart的预测方法(R编程)计算树的预测精度

我使用rpart为数据集构建了一个决策树.

然后我将数据分为两部分 - 训练数据集和测试数据集.已使用训练数据为数据集构建树.我想根据创建的模型计算预测的准确性.

我的代码如下所示:

library(rpart)
#reading the data
data = read.table("source")
names(data) <- c("a", "b", "c", "d", "class")

#generating test and train data - Data selected randomly with a 80/20 split
trainIndex  <- sample(1:nrow(x), 0.8 * nrow(x))
train <- data[trainIndex,]
test <- data[-trainIndex,]

#tree construction based on information gain
tree = rpart(class ~ a + b + c + d, data = train, method = 'class', parms = list(split = "information"))
Run Code Online (Sandbox Code Playgroud)

我现在想要通过将结果与实际值训练和测试数据进行比较来计算模型生成的预测的准确性,但是这样做时我遇到了错误.

我的代码如下所示:

t_pred = predict(tree,test,type="class")
t = test['class'] …
Run Code Online (Sandbox Code Playgroud)

r machine-learning decision-tree rpart

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

如何将 3-SAT 简化为独立集?

我正在从这里(第 8、9 页)阅读有关 NP 硬度的信息,并且在注释中,作者将 3-SAT 形式的问题简化为可用于解决最大独立集问题的图形。

在示例中,作者将以下 3-SAT 问题转换为图形。3-SAT 问题是:

(a ? b ? c) ? (b ? ~c ? ~d) ? (~a ? c ? d) ? (a ? ~b ? ~d)
Run Code Online (Sandbox Code Playgroud)

生成的等效图为:

图形

作者指出,如果满足以下条件,则两个节点通过边连接:

  1. 它们对应于同一子句中的文字
  2. 它们对应于一个变量及其逆。

我无法理解作者是如何提出这些规则的。

  • 为什么我们需要在变量和它的逆之间画边?
  • 假设有两个子句,子句 1 有 (a,b,~c) 和子句 2 有 (~a,b,c) 连接子句 1 到子句 2,为什么我们必须连接 a 和 ~a?为什么我们不能将 a(第 1 条)与 c(第 2 条)连接起来?

algorithm graph np independent-set sat

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