Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有party包的随机林无法处理超过4个级别的分类预测值_R_Random Forest_Party - Fatal编程技术网

带有party包的随机林无法处理超过4个级别的分类预测值

带有party包的随机林无法处理超过4个级别的分类预测值,r,random-forest,party,R,Random Forest,Party,我正在尝试使用party包运行一个随机林模型。我的响应变量(10级)是不同湖泊类型的分类值(感兴趣的是哪些因素影响基于水质属性的湖泊聚类)。我的预测变量包括连续变量和分类变量。一个分类变量有4个级别,另一个分类变量有8个级别(湖泊所在的美国州)。每当我在模型中包含第二个分类变量时,就会出现以下错误: Error in model@fit(data, ...) : error code 1 from Lapack routine 'dgesdd'. 我已经能够将范围缩小到这样一个事实,part

我正在尝试使用
party
包运行一个随机林模型。我的响应变量(10级)是不同湖泊类型的分类值(感兴趣的是哪些因素影响基于水质属性的湖泊聚类)。我的预测变量包括连续变量和分类变量。一个分类变量有4个级别,另一个分类变量有8个级别(湖泊所在的美国州)。每当我在模型中包含第二个分类变量时,就会出现以下错误:

Error in model@fit(data, ...) : error code 1 from Lapack routine 'dgesdd'. 
我已经能够将范围缩小到这样一个事实,
party
包中的
cforest
例程在预测变量具有超过4个分类级别时似乎没有运行。我不确定这是否适用于其他数据集,或者只是我的一个特征。谷歌表示,错误代码可能与收敛问题有关。是否有人知道
cforest
例程中关于分类预测值级别的限制(例如
randomForest
包中的
randomForest
有32个级别的限制)?我还没有看到任何关于
派对
套餐的明确讨论。一种解决方案是将该因子重新编码为单独的虚拟变量,但我希望避免这种情况。基于我的数据的特征(相关预测因子、不同水平的因素、连续和分类数据的混合)

如有任何见解,将不胜感激

链接到虚拟数据集(真实数据只是有限数量的变量):


我遇到了一个类似的问题。 在对某些数据运行以下命令时,我遇到了相同的错误:

tree = ctree(Y~., data=df[,-c(1,11:15)], controls = controls)
其中给出:

Error in model@fit(data, ...) : 
  error code 19 from Lapack routine 'dgesdd'
除了响应之外,所有变量都是数字。 我可以通过将代码更改为:

tree = ctree(Y~., data=df[,-c(1,11,12,13,14,15)], controls = controls)
所以,我想,这是一个错误。但或许你也可以用类似的方式来解决:

data.cforest = cforest(response ~., data=new.data,controls=data.controls)

但是,您的代码不会在我的计算机上导致错误,但运行良好,因此我无法对其进行测试。

我发现了无法复制的相同问题。在我的例子中,我通过手动将列的分类设置为character,后跟factor解决了这个问题。也就是说:data$classifier=as.factor(as.character(data$classifier))

延迟回答,但仍然是一个答案
我也有同样的问题。通过关闭并重新打开R-Studio解决了这个问题。在我看来,这似乎是caret和party软件包之间的冲突,两者都加载了。只要我只装了党的包裹,问题就解决了。

你为什么反对把州政府拖出去?这并不是说因子是有序的,我是随机森林模型的新手,一开始我不确定在变量重要性图中,用8个变量代表状态和一个参数来解释结果是否会更难。我一直在深入研究示例,这可能不是一个有根据的问题。您可以发布您的
sessionInfo()
?你的代码对我来说很好。我将在上面发布我的会话信息。当我在你的评论后仔细查看数据时,我意识到我发布的数据文件是将factor2分解为4级后生成的数据文件。我已经更新了数据文件,所以它是正确的。谢谢。我在运行带有分类预测的cforest时也遇到了这个问题。我在中得到错误'error'model@fit(数据…):Lapack例程“dgesdd”中的错误代码1。奇怪的是,从一个500棵树的集合到一个10棵树的集合消除了这个错误——然而,一个10棵树的集合显然不会消除这个错误。下面提供的解决方案似乎都不适合我。
tree = ctree(Y~., data=df[,-c(1,11,12,13,14,15)], controls = controls)
data.cforest = cforest(response ~., data=new.data,controls=data.controls)