我目前正在开展一个项目,该项目涉及基于在多个重要层上生长的植物对地理区域进行分割(也就是说,每个分割层具有与其他层不同的含义)
在这样做的过程中,我们使用逻辑回归从区域列表、它们在每一层中所属的片段以及它们包含哪些植物,到植物在每个片段组合中生长的概率。目前,我们正在使用 SPSS,链接到分段的 C# 实现。
到目前为止,一切都很好。问题是,SPSS 在寒冷的日子里像糖蜜一样慢。对于全套(2500 个工厂和 565 个区域),单次运行大约需要半个月。那是我们没有的时间,所以现在我们正在使用缩写数据集,但即使这样也需要几个小时。
我们研究了其他具有逻辑回归的库(特别是 Accord.NET 和 Extreme Optimization),但都没有分类逻辑回归。
在这一点上,我可能应该指定分类逻辑回归的含义。鉴于我们提供给统计引擎的数据集中的每一行对于每一层都有一个变量,并且对于我们目前感兴趣的植物有一个变量,因此层变量的值被认为是类别。0 并不比 1 好或差,只是不同而已。我们想要从统计引擎中得到每个层变量的每个类别的值(当然还有截距),所以在一个层有 3 个段和一个层有 2 个段的设置中,我们会得到 5值和截距。
我应该注意到,我们已经在 Accord.NET(必须在库之外完成)和 Extreme Optimization(它有一些库内支持)中试验了虚拟变量或指标变量,但这并没有产生必要的结果。
TL;博士
所以,长话短说,有没有人知道 C# 中分类逻辑回归的好解决方案?这可以是一个类库,或者只是一个插入外部统计引擎的接口,只要它稳定且相当快。