Ruby 中的逻辑回归算法

机器算法验证 物流 优化 算法 红宝石
2022-04-07 02:43:48

我一直在使用 R 为 Ruby on Rails Web 应用程序计算具有许多自变量的逻辑回归。但是,我不能再使用 RPostgreSQL 将数据从数据库导入 R。Web 主机已停止允许与数据库的不安全连接。关键是,我要么需要一个新的网络主机,要么用 Ruby 编写我自己的逻辑回归算法。对于这类事情,Ruby 可能不是最好的编程语言,但我真的别无选择。是否有易于实现的多重逻辑回归算法?

1个回答

随着回归问题的发展,它实际上是一个相当复杂的算法。您的问题的答案很大程度上取决于您是否可以使用可靠的通用 CG 优化算法。如果你这样做了,问题就会变得简单一些。如果您不这样做,我不建议从头开始重新实现逻辑回归(尽管其他人已经尝试过,请参阅此处以了解没有 GC 例程的最小 R 实现),原因在此处进行了解释。

无论如何,潜在的可能性表面可能几乎是平坦的,因此您必须小心实现的小印刷品并在许多极端情况下对其进行测试(这些情况下,X高度相关或当两组几乎完全可分离时)。

一种可能的(快速而肮脏的)替代方法是重新调整所有X是在[0,1]- 例如,通过对它们中的每一个单独使用逆 logit 函数(在它们首先被标准化以具有均值 0 和单位方差之后) - 并通过 OLS 估计拟合(这种方法称为线性概率模型)。它不会是同一个模型,系数也不会具有可比性,但结果会比在原始数据上进行 OLS 更好。这里的优点是实现 OLS 是微不足道的,假设您可以访问一个好的 ruby​​ 线性代数库(谷歌搜索我发现quix/linalg