问题标签 [cart-analysis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
920 浏览

r - mvpart 与 rpart 中的拆分规则

我想根据几个变量制作分类树来预测 1 种鸟类的存在/不存在。我知道 rpart 处理单变量分区,而 mvpart 处理多变量分区,但我想将 mvpart 用于我的单变量树,因为它的输出更灵活。有谁知道我不应该这样做的原因?rpart 和 mvpart 中的分割是否会不同,输入相同?

0 投票
0 回答
741 浏览

excel - 以树表示形式从 Excel 数据透视图中绘制数据

我一直在寻找是否有任何插件或软件可以让来自 excel 数据透视表的数据以可视树表示形式动态绘制。我知道用于手动可视化树等的 graphviz 之类的,但理想情况下,我应该能够更改枢轴中的某些内容,这将从此更改图形。

我正在尝试逐页可视化通过网站的旅程,虽然我在数据透视表中表示了这一点,但我希望能够直观地展示这一点。

0 投票
0 回答
362 浏览

r - 如何选择具有相同增益信息的最佳分裂属性

实际上,我正在逐步计算 CART(分类和回归树)如何使用此训练数据集选择最佳属性拆分:

R给出的结果:

  • n= 12 节点), split, n, loss, yval, (yprob) * 表示终端节点
  • 1) 根 12 5 无 (0.5833333 0.4166667)
  • 2) Car=sports,truck 6 1 no (0.8333333 0.1666667)
  • 4) 年龄
  • 5) 年龄>=40.5 1 0 是 (0.0000000 1.0000000) *
  • 3) 汽车=轿车 6 2 是 (0.3333333 0.6666667)
  • 6) 年龄>=33.5 2 0 无 (1.0000000 0.0000000) *
  • 7) 年龄

对于根节点 Gini(root)=0.486

  • - 汽车属性 GainGini(Car)=0.1255;
  • - 使用年龄属性,我在阈值 27.5 和 33.5 时获得了相同的增益。因此,如果 GainGini(Age) 将被最大化,该选择哪一个。
  • - 带有 Children 属性。2 个子节点非常纯,所以 GainGini(Children)=0.486

我的第一个问题是为什么在这个情节上我得到了 Car 属性用于拆分?

    对于第一个右子节点:Gini(node2)=0.444
  • - 使用 Age 属性:阈值 33.5 得到 GainGini(Age)=0.444
  • - 带有 children 属性:与根节点相同(所有实例都是纯的) GainGini(children)=0.444

这是我的第二个问题 CART 如何设法选择具有这两个值的拆分属性?

0 投票
2 回答
978 浏览

r - 对 R 中的重复案例使用权重(特别是二元响应的 gam)

我注意到许多 R 模型允许使用“权重”参数(例如 cart、loess、gam、...)。大多数帮助功能将其描述为数据的“先验权重”,但这实际上意味着什么?

我有许多重复案例和二进制响应的数据。我希望我可以使用“权重”来编码每个输入和响应组合发生的次数,但这似乎不起作用。我还尝试将响应作为成功的比例,以及对每个协变量组合的总试验权重,但这似乎也不起作用(至少对于 gam 而言)。我正在尝试对上面列出的所有模型类型执行此操作,但对于初学者,如何为 gam [mgcv 包] 执行此操作?

0 投票
1 回答
1796 浏览

r - 在 R 中的大型数据集上运行回归树

我正在使用大约 150 万个观测值的数据集。我发现在我的数据的一小部分上运行回归树(我正在使用包中的mob()* 函数party)需要很长时间(我不能在超过 50k obs 的子集上运行)。

我可以想到两个减慢计算速度的主要问题

  1. 使用整个数据集在每一步计算拆分。我会对根据数据的随机子集在每个节点处选择要拆分的变量的结果感到满意,只要它继续在树中的每个子节点处补充样本的大小。
  2. 该操作未并行化。在我看来,一旦树进行了第一次拆分,它就应该能够使用两个处理器,所以到 16 次拆分时,我的机器中的每个处理器都将被使用。在实践中,似乎只有一个被使用。

有没有人对更适合大型数据集的替代树实现或我可以更改以使计算更快的事情提出建议**?

* 我正在使用mob(),因为我想在每个节点的底部拟合一个线性回归,以根据它们对处理变量的响应来拆分数据。

** 似乎大大减慢了计算速度的一件事是我有一个包含 16 种类型的因子变量。计算要拆分的变量子集似乎比其他拆分花费的时间要长得多(因为有很多不同的方法可以对它们进行分组)。这个变量是我们认为很重要的变量,所以我不愿意完全放弃它。在将类型放入树模型之前,是否有推荐的方法将类型分组为较少数量的值?

0 投票
1 回答
1600 浏览

matlab - 如何在 Matlab 的 TreeBagger 中可视化树和拆分值

我是 Matlab 中 TreeBagger 的新手。我设计了 2 个简单的案例来学习 TreeBagger(随机森林)。假设自变量为 z:

第一种情况:1个变量:

并且预测变量是 x 和 y:

第二种情况:2 个变量

与以前相同,但有一个附加变量 y:

解决案例 1:

我想要的是:

案例1&2:可视化使用的分类树(我选择了一个),还可以看到分裂阈值...

0 投票
1 回答
544 浏览

r - 按照 R 决策示例的示例

我正在查看 R 决策树,发现本教程在某种程度上是我需要的,几乎正是我需要的东西。

所以:http ://www.r-bloggers.com/using-r-for-a-salary-negotiation-an-extension-of-decision-tree-models/

有人可以指导我如何实施这个项目吗?坦率地说,我只是将代码复制并粘贴到 R 中,它给了我错误,例如:

非常感谢您的帮助!谢谢!

0 投票
1 回答
1389 浏览

r - rpart 模型在插入符号中折叠为零分裂

我正在使用 rpart 在 caret 包中运行回归树分析,使用 oneSE 选项进行选择功能。当我这样做时,我经常会得到一个零分裂的模型。它表明没有模型会比任何模型更好。这应该发生吗?

这是一个例子:

这是模型输出:

这是 printcp 的输出:

但是,如果我直接在 rpart 中运行模型,我可以看到更大的、未修剪的树,它被修剪为上面所谓的更简约的模型:

Caret [我认为] 试图找到最小的树,其 RMSE 在具有最低 RMSE 的模型的 1 SD 范围内。这类似于 Venebles 和 Ripley 提倡的 1-SE 方法。在这种情况下,即使没有解释力,选择没有拆分的模型似乎也会陷入困境。

这是正确的吗?这个可以吗?似乎应该有一条规则来防止选择没有拆分的模型。

0 投票
2 回答
9890 浏览

r - 有人可以解释一下 ID3 和 CART 算法之间的区别吗?

我必须使用 R 软件和 rpart 包创建决策树。在我的论文中,我应该首先定义 ID3 算法,然后实现各种决策树。

我发现 rpart 包不适用于 ID3 算法。它使用 CART 算法。我想了解其中的差异,并可能在我的论文中解释差异,但我没有找到任何比较双方的文献。

你能帮助我吗?你知道一篇比较两者的论文吗,或者你能向我解释一下区别吗?

0 投票
1 回答
2112 浏览

r - 如何在每个特征变量(最好在 R 中)中构建只有二分法的分类树?

我一直在使用 rpart 来训练具有二元响应的监督决策树模型。结果的问题在于,某些特征以非单调的方式多次拆分。例如,特征 A 可能被分成三个区间,[0,0.4],[0.4,0.6],[0.6,1],分别对应于以下响应,-1,1,-1。我希望每个功能都以二进制方式拆分一次。有没有办法在 R 中做到这一点?

一个说明性的例子:

假设我有兴趣从 SAT 分数预测大学辍学率。然后 R 中的树或 rpart 包可能会给我以下模型:

虽然这可能是给定训练数据的最佳二叉树模型。我想注入我的领域知识,即 SAT 分数和辍学概率之间的关系应该是单调的,并强制规定有一个 SAT 阈值来确定辍学概率。

所以我的问题是,是否有一种方法可以在 R 中强制执行上述意义上的单调性。