Questions tagged «rpart»

rpart是一个R包,提供许多与回归树和递归分区算法有关的例程。该软件包通常用于分类问题。

3
什么是偏差?(特别是在CART / rpart中)
什么是“偏差”,它是如何计算的,在统计的不同字段中有什么用? 特别是,我个人对它在CART中的使用(及其在R中的rpart中的实现)感兴趣。 我之所以这么问,是因为维基文章似乎有所欠缺,您的见解将受到极大欢迎。
45 r  cart  rpart  deviance 

4
使用CART时如何衡量/排列“可变重要性”?(特别是使用R中的{rpart})
当使用rpart(在R中)构建CART模型(特别是分类树)时,通常很有趣的一点是,了解引入模型的各种变量的重要性。 因此,我的问题是: 对于CART模型中的参与变量的排名/衡量变量重要性,存在哪些常用措施?以及如何使用R来计算(例如,使用rpart包时) 例如,下面是一些伪代码,它们是创建的,以便您可以在上面显示解决方案。此示例经过结构设计,很明显变量x1和x2是“重要的”,而(在某种意义上)x1比x2更重要(因为x1应该适用于更多情况,因此对数据结构的影响更大,然后x2)。 set.seed(31431) n <- 400 x1 <- rnorm(n) x2 <- rnorm(n) x3 <- rnorm(n) x4 <- rnorm(n) x5 <- rnorm(n) X <- data.frame(x1,x2,x3,x4,x5) y <- sample(letters[1:4], n, T) y <- ifelse(X[,2] < -1 , "b", y) y <- ifelse(X[,1] < 0 , "a", y) require(rpart) fit <- …

2
在CART中选择复杂度参数
在用于创建CART模型的rpart()例程中,指定要将树修剪到的复杂度参数。对于选择复杂度参数,我看到了两种不同的建议: 选择与最小可能的交叉验证错误关联的复杂性参数。Quick-R和HSAUR 建议使用此方法。 选择最大复杂度参数,其估计的交叉验证误差仍在最小可能交叉验证误差的SE之内。这是我的包文档的解释,它说:“为修剪一个很好的选择CP往往是最左边的值,其平均谎言低于水平线”中提到此情节。 cp的两个选择在我的数据集中产生了完全不同的树。 似乎第一种方法将始终生成更复杂的,可能过度拟合的树。在文献中还存在其他优点,缺点和建议等。在决定使用哪种方法时应考虑在内?如果可以的话,我可以提供有关我的特定建模问题的更多信息,但是我试图将这个问题范围扩大到与其他问题相关。
16 r  cart  rpart 

2
在R中对树进行分区:party与rpart
自从我看着分区树已经有一段时间了。上次我做这种事情时,我喜欢R中的聚会(由Hothorn创建)。通过采样进行条件推断的想法对我来说很有意义。但是,rpart也具有吸引力。 在当前的应用程序中(我无法提供详细信息,但是它涉及尝试确定谁将在大量被捕者中入狱),我无法使用高级方法,例如随机森林,装袋,助推等。-我需要一个容易解释的方法规则。 我还希望对拆分的节点进行一些手动控制,如Zhang&Singer(2010)递归分区和应用中所建议。该书随附的免费软件允许这样做,但在其用户输入中相当原始。 有什么建议或建议吗?
15 r  cart  rpart  partitioning 

3
每叶具有线性回归模型的回归树算法
简短版:我正在寻找可以构建决策树的R包,而决策树中的每个叶子都是完整的线性回归模型。AFAIK,该库rpart创建决策树,其中因变量在每个叶子中都是恒定的。是否存在rpart可以构建此类树的另一个库(或我不知道的设置)? 加长版:我正在寻找一种基于训练数据集构建决策树的算法。树中的每个决策根据自变量之一的条件将训练数据集分为两部分。树的根包含完整的数据集,并且数据集中的每一项仅包含在一个叶节点中。 该算法如下所示: 从完整的数据集开始,该数据集是树的根节点。选择这个节点,并调用它。NNN 在的数据上创建线性回归模型。NNN 如果的的线性模型比某个阈值更高,那么我们已处理完毕的,所以标记作为叶并跳转到步骤5。R2R2R^2NNNθR2θR2\theta_{R^2}NNNNNN 尝试随机决策,然后选择在子节点中产生最佳决策: nnnR2R2R^2 选择一个随机独立变量,以及一个随机阈值θ 我。viviv_iθiθi\theta_i 决定拆分所述数据集的Ñ成两个新节点,Ñ和〜Ñ。vi≤θivi≤θiv_i \leq \theta_iNNNN^N^\hat{N}N~N~\tilde{N} 创建两个线性回归模型Ñ和〜Ñ,并计算它们的- [R 2(它们调用ř和〜- [R )。N^N^\hat{N}N~N~\tilde{N}R2R2R^2r^r^\hat{r}r~r~\tilde{r} 从所有这些元组(v 我,θ 我,- [R , 〜 - [R )中,选择一个具有最大米我Ñ ([R , 〜 - [R )。 这就产生了树一个新的决定,并ñ有两个新的子节点ñ和〜ñ。nnn(vi,θi,r^,r~)(vi,θi,r^,r~)(v_i, \theta_i, \hat{r}, \tilde{r})min(r^,r~)min(r^,r~)min(\hat{r}, \tilde{r})NNNN^N^\hat{N}N~N~\tilde{N} 我们已经完成了处理。选择一个尚未处理的新节点N,然后返回步骤2。如果所有节点均已处理,则算法结束。NNNNNN 这将以递归方式建立决策树,将数据分成较小的部分,并在每个部分上计算线性模型。 步骤3是退出条件,可以防止算法过度拟合。当然,还有其他可能的退出条件: 出口如果的树中的深度为上述θ d Ë p 吨ħNNNθdepthθdepth\theta_{depth} 出口如果在数据集中小于θ d 一吨一个小号ë 吨NNNθdatasetθdataset\theta_{data …
14 r  regression  rpart  cart 

1
决策树中二进制拆分的实现差异
我对决策树中二进制拆分的实际实现感到好奇-因为它与分类预测变量级别有关。XjXjX{j} 具体来说,在使用决策树构建预测模型时,我经常会使用某种采样方案(例如装袋,过采样等),以提高其预测准确性和稳定性。在这些采样例程中,可以将类别变量以小于完整级别集的形式显示给树拟合算法。 假设变量X具有水平{A,B,C,D,E}。在样本中,可能仅{A,B,C,D}存在水平。然后,当将结果树用于预测时,可以存在全套。 继续此示例,假设一棵树在X上分裂并{A,B}向左和{C,D}向右发送。当面对新数据时,我希望二进制拆分的逻辑会这样说:“如果X具有值A或B,则向左发送,否则,将这种情况向右发送”。在某些实现中似乎发生了“如果X的值为A或B,则发送到左侧,如果X的值为C或D,则发送到右侧”。当这种情况采用值E时,算法将崩溃。 处理二进制拆分的“正确”方法是什么?似乎经常但不是总是实施更健壮的方法(请参阅下面的Rpart)。 这是几个例子: Rpart失败,其他都还可以。 #test trees and missing values summary(solder) table(solder$PadType) # create train and validation set.seed(12345) t_rows<-sample(1:nrow(solder),size=360, replace=FALSE) train_solder<-solder[t_rows,] val_solder<-solder[-t_rows,] #look at PadType table(train_solder$PadType) table(val_solder$PadType) #set a bunch to missing levels(train_solder$PadType)[train_solder$PadType %in% c('L8','L9','W4','W9')] <- 'MISSING' #Fit several trees, may have to play with the parameters to …

2
将分类树(部分)组织成一组规则?
一旦使用rpart(在R中)构造了复杂的分类树,是否有办法组织为每个类生成的决策规则?因此,对于每一个类,我们都有一套规则,而不是得到一棵大树? (如果是,如何?) 这是一个简单的代码示例,显示以下示例: fit <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis) 谢谢。
11 r  classification  cart  rpart 

1
为什么Anova()和drop1()为GLMM提供了不同的答案?
我有以下形式的GLMM: lmer(present? ~ factor1 + factor2 + continuous + factor1*continuous + (1 | factor3), family=binomial) 当我使用时drop1(model, test="Chi"),我得到的结果与Anova(model, type="III")从汽车包装或汽车上获得的结果不同summary(model)。后两个给出相同的答案。 通过使用大量虚构数据,我发现这两种方法通常没有区别。对于平衡线性模型,不平衡线性模型(不同组中的n不相等)和平衡广义线性模型,它们给出相同的答案,但对于平衡广义线性混合模型,它们给出相同的答案。因此看来,只有在包括随机因素的情况下,这种矛盾才会显现出来。 为什么这两种方法之间存在差异? 使用GLMM时应使用Anova()还是drop1()应使用? 至少就我的数据而言,两者之间的差异很小。哪一个使用都重要吗?
10 r  anova  glmm  r  mixed-model  bootstrap  sample-size  cross-validation  roc  auc  sampling  stratification  random-allocation  logistic  stata  interpretation  proportion  r  regression  multiple-regression  linear-model  lm  r  cross-validation  cart  rpart  logistic  generalized-linear-model  econometrics  experiment-design  causality  instrumental-variables  random-allocation  predictive-models  data-mining  estimation  contingency-tables  epidemiology  standard-deviation  mean  ancova  psychology  statistical-significance  cross-validation  synthetic-data  poisson-distribution  negative-binomial  bioinformatics  sequence-analysis  distributions  binomial  classification  k-means  distance  unsupervised-learning  euclidean  correlation  chi-squared  spearman-rho  forecasting  excel  exponential-smoothing  binomial  sample-size  r  change-point  wilcoxon-signed-rank  ranks  clustering  matlab  covariance  covariance-matrix  normal-distribution  simulation  random-generation  bivariate  standardization  confounding  z-statistic  forecasting  arima  minitab  poisson-distribution  negative-binomial  poisson-regression  overdispersion  probability  self-study  markov-process  estimation  maximum-likelihood  classification  pca  group-differences  chi-squared  survival  missing-data  contingency-tables  anova  proportion 

2
如何评估适应功能的优劣
尽管我对分类和回归有一定的了解,但我还是生存分析的新手。 对于回归,我们具有MSE和R平方统计量。但是,除了某种图形化的图(KM曲线),我们如何说生存模型A优于生存模型B? 如果可能的话,请举例说明差异(例如R中的rpart包)。您如何证明一棵CART生存树比另一棵CART生存树好?可以使用哪些指标?

1
如何在rpart()中选择分割数?
我已经使用rpart.control了minsplit=2,并得到了以下结果rpart()功能。为了避免数据过拟合,是否需要使用拆分3或拆分7?我不应该使用拆分7吗?请告诉我。 在树构造中实际使用的变量: [1] ct_a ct_b usr_a Root node error: 23205/60 = 386.75 n= 60 CP nsplit rel error xerror xstd 1 0.615208 0 1.000000 1.05013 0.189409 2 0.181446 1 0.384792 0.54650 0.084423 3 0.044878 2 0.203346 0.31439 0.063681 4 0.027653 3 0.158468 0.27281 0.060605 5 0.025035 4 0.130815 0.30120 0.058992 …
9 r  cart  rpart 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.