Questions tagged «random-forest»

随机森林是一种将许多决策树的输出组合在一起的机器学习方法。

3
随机森林和极端随机树之间的区别
我了解到,随机森林树和极随机树在意义上是不同的,即随机森林中的树的分割是确定性的,而对于极随机树则它们是随机的(更准确地说,下一个分割是最佳分割在当前树的所选变量中的随机均匀拆分中)。但是我不完全理解这种不同拆分在各种情况下的影响。 他们如何比较偏差/方差? 如果存在不相关的变量,它们如何比较? 在存在相关变量的情况下如何比较?

1
手动计算的
我知道这是一个相当具体的R问题,但我可能正在考虑错误解释的比例方差。开始。[R2R2R^2 我正在尝试使用该R包装randomForest。我有一些训练数据和测试数据。当我拟合随机森林模型时,该randomForest函数允许您输入新的测试数据进行测试。然后,它告诉您此新数据中说明的方差百分比。当我看到这个时,我得到一个数字。 当我使用该predict()函数基于训练数据的模型拟合来预测测试数据的结果值时,并取这些值与测试数据的实际结果值之间的平方相关系数,得出一个不同的数字。这些值不匹配。 这是一些R代码来演示该问题。 # use the built in iris data data(iris) #load the randomForest library library(randomForest) # split the data into training and testing sets index <- 1:nrow(iris) trainindex <- sample(index, trunc(length(index)/2)) trainset <- iris[trainindex, ] testset <- iris[-trainindex, ] # fit a model to the training set (column …

6
使用许多分类变量改善分类
我正在使用一个包含200,000多个样本和每个样本约50个特征的数据集:10个连续变量,另外约40个是类别变量(国家,语言,科学领域等)。对于这些分类变量,您有150个不同的国家/地区,50种语言,50个科学领域等。 到目前为止,我的方法是: 对于具有许多可能值的每个类别变量,仅采用具有超过10000个样本的值作为该变量。这将减少到5-10个类别,而不是150个类别。 为每个类别建立虚拟变量(如果有10个国家,则为每个样本添加大小为10的二元向量)。 用此数据输入随机森林分类器(交叉验证参数等)。 目前,使用这种方法,我只能获得65%的准确度,并且我认为可以做得更多。尤其是我对1)感到不满意,因为我觉得我不应该根据他们拥有的样本数量随意删除“最不相关的值”,因为这些表示较少的值可能更具区分性。另一方面,我的RAM无法通过保留所有可能的值向数据添加500列* 200000行。 您有什么建议要应对这么多的分类变量吗?

3
在随机森林中通过投票创建“确定性分数”?
我正在寻找一种分类器,该分类器将通过大约10,000个对象的相当大的训练集来区分Type A和Type B对象,其中大约一半是Type A,一半是Type B。数据集由100个连续要素组成,详细描述了单元的物理属性(大小,平均半径等)。以成对的散点图和密度图可视化数据可知,在许多特征中,癌细胞和正常细胞的分布存在明显的重叠。 我目前正在探索随机森林作为此数据集的分类方法,并且已经看到了一些不错的结果。使用R,随机森林能够正确分类约90%的对象。 我们想要尝试做的一件事是创建一种“确定性分数”,该分数将量化我们对物体分类的信心。我们知道,我们的分类将永远是100%准确,即使在预测精度高的实现,我们将要培训的技术人员,以确定哪些对象是真正的Type A和Type B。因此,而不是提供的不妥协的预言Type A或者Type B,我们只是给出一个分数为每个对象,将描述如何A或B对象是。例如,如果我们设计一个分数,范围从0到10,则分数0可能表示一个对象与该对象非常相似Type A,而分数10则表明该对象非常类似于Type B。 我当时想我可以使用随机森林中的选票来设计这样的分数。由于随机森林的分类是通过在生成的树木的森林中进行多数表决来完成的,因此我假设由100%的树木Type A投票的对象将与由51%的树木投票的对象不同。是Type A。 目前,我尝试为对象必须分类为Type A或的投票比例设置一个任意阈值Type B,如果未通过该阈值,它将被分类为Uncertain。例如,如果我强制要求80%或更多的树必须同意通过分类的决定,那么我发现99%的类预测是正确的,但是大约40%的对象被归为Uncertain。 那么,利用投票信息对预测的确定性进行评分是否有意义?还是我的想法朝错误的方向前进?

3
如何解释随机森林的OOB和混淆矩阵?
我从某人那里获得了R脚本来运行随机森林模型。我修改并运行了一些员工数据。我们正在尝试预测自愿离职。 以下是一些其他信息:这是一个分类模型,其中0 =员工留下,1 =员工终止,我们目前仅查看十二个预测变量,数据“不平衡”,因为术语记录约占7占总记录集的百分比。 我使用各种mtry和ntree选择来运行模型,但是选择了以下内容。OOB是6.8%,我认为这很好,但是混淆矩阵似乎在讲另一个预测术语的方法,因为错误率非常高,达到92.79%。我认为我不能依靠和使用此模型是正确的,因为预测术语的高错误率?还是可以做一些事情来使用RF并获得较小的错误率来预测术语? FOREST_model <- randomForest(theFormula, data=trainset, mtry=3, ntree=500, importance=TRUE, do.trace=100) ntree OOB 1 2 100: 6.97% 0.47% 92.79% 200: 6.87% 0.36% 92.79% 300: 6.82% 0.33% 92.55% 400: 6.80% 0.29% 92.79% 500: 6.80% 0.29% 92.79% > print(FOREST_model) Call: randomForest(formula = theFormula, data = trainset, mtry = 3, ntree …

3
如何解释随机森林模型中准确度的均值下降和GINI的均值下降
我在理解如何解释“随机森林”软件包的可变重要性输出时遇到了一些困难。准确度的平均下降通常被描述为“由于置换每个特征中的值而导致的模型准确度的下降”。 这是关于整个功能还是关于功能中的特定值的声明?在这两种情况下,通过从模型中删除有问题的特征(或特征中的值)而将未正确分类的观测值的数量或比例平均准确率降低了吗? 假设我们有以下模型: require(randomForest) data(iris) set.seed(1) dat <- iris dat$Species <- factor(ifelse(dat$Species=='virginica','virginica','other')) model.rf <- randomForest(Species~., dat, ntree=25, importance=TRUE, nodesize=5) model.rf varImpPlot(model.rf) Call: randomForest(formula = Species ~ ., data = dat, ntree = 25, proximity = TRUE, importance = TRUE, nodesize = 5) Type of random forest: classification Number of trees: …

3
随机森林如何对异常值不敏感?
我已经读过一些资料,包括本资料,其中“ 随机森林”对离群值不敏感(例如Logistic回归和其他ML方法都是如此)。 但是,有两种直觉告诉我: 每当构建决策树时,都必须对所有点进行分类。这意味着,甚至离群值也将被分类,因此会影响在增强期间选择它们的决策树。 自举是RandomForest进行子采样的一部分。自举容易受到异常值的影响。 有什么办法可以使我对直觉对异常值敏感的直觉与不同意的消息来源相吻合?

2
随机森林中高度相关的变量会不会扭曲准确性和特征选择?
据我了解,高度相关的变量不会在随机森林模型中引起多重共线性问题(如果我做错了,请纠正我)。但是,另一方面,如果我有太多包含相似信息的变量,那么模型在此集合上的权重会比其他集合高吗? 例如,有两组具有相同预测能力的信息(A,B)。变量,X 2,...全部包含信息A,只有Y包含信息B。当随机采样变量时,大多数树将在信息A上生长,结果信息B不完全被抓?X1X1X_1X2X2X_2X1000X1000X_{1000}

2
R中随机森林分类中一组预测变量的相对重要性
我想确定变量集对randomForestR中的分类模型的相对重要性。该importance函数MeanDecreaseGini为每个单独的预测变量提供度量标准-是否像对集合中的每个预测变量求和一样简单? 例如: # Assumes df has variables a1, a2, b1, b2, and outcome rf <- randomForest(outcome ~ ., data=df) importance(rf) # To determine whether the "a" predictors are more important than the "b"s, # can I sum the MeanDecreaseGini for a1 and a2 and compare to that of b1+b2?


3
R对文本分类任务的缩放程度如何?[关闭]
我试图与R同步。最终我想使用R库进行文本分类。我只是想知道人们在进行文本分类时对R的可伸缩性有何经验。 我可能会遇到高维数据(约30万维)。我正在研究使用SVM和随机森林作为分类算法。 R库会扩展到我的问题规模吗? 谢谢。 编辑1:只是为了澄清,我的数据集可能有1000-3000行(也许更多)和10个类。 编辑2:由于我是R的新手,因此我将要求海报在可能的情况下更加具体。例如,如果您建议一个工作流程/管道,请确保尽可能提及每个步骤中涉及的R库。一些额外的指针(例如示例,示例代码等)将锦上添花。 编辑3:首先,谢谢大家的评论。其次,我很抱歉,也许我应该为这个问题提供更多的背景信息。我是R的新手,但对文本分类却不太了解。我已经使用tm包对我的数据的某些部分进行了预处理(删除,删除停用词,tf-idf转换等),以使您对事物有所了解。即使只有大约200个文档,tm也是如此缓慢,以至于我担心可伸缩性。然后我开始玩FSelector,即使那真的很慢。这就是我进行操作的关键所在。 编辑4:我刚想到我有10个班级,每个班级大约有300份培训文档,实际上我是在整个培训集中构建termXdoc矩阵,从而产生了很高的维度。但是,如何将每个千分之一分类问题简化为一系列二进制分类问题呢?这将大大减少k-1步骤每一步的培训文档的数量(并因此减少维度),不是吗?那么这是一种好方法吗?与普通的多类实现相比,它的准确性如何?


3
R:尽管数据集中没有NaN,随机森林仍在“外部函数调用”错误中抛出NaN / Inf [关闭]
我正在使用插入符号在数据集上运行交叉验证的随机森林。Y变量是一个因素。我的数据集中没有NaN,Inf或NA。但是,当运行随机森林时,我得到 Error in randomForest.default(m, y, ...) : NA/NaN/Inf in foreign function call (arg 1) In addition: There were 28 warnings (use warnings() to see them) Warning messages: 1: In data.matrix(x) : NAs introduced by coercion 2: In data.matrix(x) : NAs introduced by coercion 3: In data.matrix(x) : NAs introduced by …

1
将相似度矩阵转换为(欧式)距离矩阵
在随机森林算法中,Breiman(作者)构造相似矩阵如下: 将所有学习示例发送到森林中的每棵树上 如果两个示例落在同一片叶子上,则相似矩阵中的对应元素增加1 用树数归一化矩阵 他说: 情况n和k之间的接近度形成矩阵{prox(n,k)}。从它们的定义可以很容易地看出,该矩阵是对称的,正定的并且在1上有界,对角线元素等于1。由此得出,值1-prox(n,k)是欧几里得中的平方距离维数空间不大于案例数。资源 在他的实现中,他使用sqrt(1-prox)(其中prox是相似矩阵)将其转换为距离矩阵。我想这与上面引用的“欧氏空间中的平方距离”有关。 有人可以解释为什么为什么在欧几里得空间中1-prox是平方距离,以及为什么他使用平方根来获得距离矩阵吗?


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.