gpt4 book ai didi

r - 如何处理partykit中的大量因素/类别

转载 作者:行者123 更新时间:2023-12-04 09:41:01 29 4
gpt4 key购买 nike

我使用 partykit打包并遇到以下错误消息:

Error in matrix(0, nrow = mi, ncol = nl) : 
invalid 'nrow' value (too large or NA)
In addition: Warning message:
In matrix(0, nrow = mi, ncol = nl) :
NAs introduced by coercion to integer range

我使用了 this 中给出的示例文章,它将包裹及其处理与许多类别进行比较。

问题是,使用的拆分变量的类别太多。内 mob()函数创建了一个包含所有可能拆分的矩阵。仅此矩阵的大小为 p * (2^(p-1)-1) ,其中 p 是拆分变量的类别数。
根据使用的系统资源(RAM 等),不同数量的 p 会发生给定的错误。

文章建议使用基尼标准。我觉得随着partykit包的用意,不能用基尼准则,因为我的不是目标变量的分类问题,而是模型规范问题。

因此,我的问题是:有没有办法找到这种情况下的拆分或减少要检查的拆分数量的方法?

最佳答案

这种仅搜索 k 个有序分割而不是 2^k -1 个无序分区的技巧仅在某些情况下有效,例如,当可以按每个类别中的平均值对响应进行排序时。我从来没有足够详细地研究过基本理论,但这仅在某些假设下有效,我不确定这些是否在某处被很好地阐明。您当然需要一个单变量问题,因为只有一个基础参数(通常是平均值)被优化。鉴于对 Gini 的强调,目标函数的可能连续可微性也可能是一个问题。

mob()可能最常用于对多个参数进行分区的情况,我认为不可能利用这个技巧。同样,ctree()可以很容易地应用于具有多变量分数的情况,即使响应变量是单变量(例如,用于捕获位置和尺度差异)。

我通常会建议将具有多个级别的因素分解为更小的部分。例如,如果您有一个观测值的邮政编码因子:那么可以使用一个表示州/省的因子,以及一个编码“大小”(面积或人口)的数字变量,一个编码农村与城市的因子,等等。当然,这是额外的工作,但通常也会导致更多可解释的结果。

话虽如此,如果有的话,partykit 就在我们的愿望 list 上利用这些技巧。但这不是我们当前议程的首要任务......

关于r - 如何处理partykit中的大量因素/类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44455090/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com