【问题标题】:Locally weighted logistic regression局部加权逻辑回归
【发布时间】:2012-10-04 09:21:44
【问题描述】:

我一直在尝试在 Ruby 中实现局部加权逻辑回归算法。据我所知,目前还没有这个算法的库,可用的信息也很少,所以很难。

我的主要资源是dissertation of Dr. Kan Deng,他在其中描述了我认为非常简单的算法细节。我目前在图书馆的工作是here

我在尝试计算 B(测试版)时遇到了麻烦。据我了解,B 是一个(1+d x 1) 向量,表示特定点的局部权重。之后,该点的pi(正输出的概率)是基于该点的B 的sigmoid 函数。要获得B,请递归使用Newton-Raphson 算法一定次数,可能不超过十次。

第 66 页上的公式 4-4,Newton-Raphson 算法本身,对我来说没有意义。根据我对X 和W 的理解,(x.transpose * w * x).inverse * x.transpose * w 应该是(1+d x N) 矩阵,它与B 不匹配,即(1+d x 1)。那么,唯一可行的方法是,如果 e 是 (N x 1) 向量。

在第67页的顶部,在图片下方,邓博士只是说e是一个比率,这对我来说没有意义。是 e 欧拉常数吗?碰巧这个比率总是 2.718:1,还是别的什么?无论哪种方式,对我来说,解释似乎都没有暗示它是一个向量,这让我感到困惑。

pi' 的使用也让我感到困惑。公式 4-5,sigmoid 函数 w.r.t. 的导数B,给出一个常数乘以一个向量,或一个向量。不过,据我了解,pi' 应该是一个数字,乘以 w 并形成权重算法 W 的对角线。

所以,我在这里的两个主要问题是,第 67 页上的 e 是什么,这是我需要的 1xN 矩阵,以及等式 4-5 中的 pi' 如何以数字结尾?

我知道这是一个很难回答的问题,所以如果有一个好的答案,我会在几天后回来并给它 50 分的赏金。我会发邮件给邓博士,但我一直没能查到他在 1997 年之后发生了什么事。

如果有人对此算法有任何经验或知道任何其他资源,我们将不胜感激!

【问题讨论】:

  • 应该只实现Dr.Deng的方程吗?您是否考虑过逻辑回归的其他变体?
  • 我正在寻找,特别是局部加权逻辑回归。普通逻辑回归无法处理多个区间,并且有一些不优雅的解决方案,但我认为局部加权算法更平滑,特别适合我的特定应用。
  • 要查看我想要拟合的图表类型的粗略示例,请转到uscfstats.com/deltas 并输入 12842311。我想找出一条曲线来大致划分绿色/蓝色点和红点。
  • 这是一个非常好的问题,但我认为您不会在这里找到太多帮助。你真的应该考虑尝试scicomp.stackexchange.com/?as=1cstheory.stackexchange.com
  • 谢谢,如果版主认为我更有可能在其中一个网站上找到成功的答案,那么如果他们为我移动它,我会非常高兴。我认为我自己没有足够的声誉来移动它,如果这是非版主甚至可以做的事情。

标签: algorithm matrix machine-learning linear-algebra regression


【解决方案1】:

据我所知,这只是 Logistic 回归的一个版本,其中对数似然函数中的项具有乘法权重,具体取决于它们与您尝试分类的点的距离。我将从熟悉逻辑回归的解释开始,例如http://czep.net/stat/mlelr.pdf。您提到的“e”似乎与欧拉常数完全无关 - 我认为他使用 e 表示错误。

如果您可以从 Ruby 调用 Java,则可以使用 http://weka.sourceforge.net/doc.stable/weka/classifiers/functions/Logistic.html 中描述的 Weka 中的逻辑分类器 - 这表示“虽然原始逻辑回归不处理实例权重,但我们稍微修改了算法位来处理实例权重。”如果不出意外,您可以下载它并查看其源代码。如果您这样做,请注意这是一种相当复杂的方法 - 例如,他们事先检查所有点是否实际上几乎位于输入空间的某个子空间中,如果是,则向下投影几个维度。

【讨论】:

  • 谢谢,但我已经非常了解逻辑回归了。我认为我在这里遇到困难的部分特定于这个特定算法的加权方面。不过,我很乐意弄错!
  • 比较第 64 页上描述标准逻辑回归的方程 4-2 和描述权重的第 66 页上的方程 4-3。它们之间的唯一区别是加权 w_i,如果您使用对数似然而不是似然,这将变成乘法因子。因此,如果您理解使用 Newton-Raphson 来拟合正常的逻辑回归,那么理解优化目标函数并使用 w_i 因子应该不是一件容易的事 - 只需通过计算一阶和二阶导数保持w_i 的轨迹。
  • 谢谢,关于 pi' 的问题呢?那个导数不是向量吗?
  • 等式 4-5 中的 pi' 是 pi 的正确导数,但不能用于形成 W 的对角线,因为它已经包含 (1, xi')向上作为 X'W 中的 X' 列。如果您只想要一个将乘以 X' 列的对角线,则需要从 4.5 中删除 (1, xi')。为确认起见,请与 mlelr.pdf 中的等式 11、16 和 23 进行比较(其中 n_i 几乎充当权重 - 如果 y_i 的定义略有不同,它将是一个)。
  • 谢谢,我确实在我的实现中删除了 (1, xi'),尽管这不是他写的。不过,这感觉很粗略,正确的导数不能以应有的方式使用。
猜你喜欢
  • 2011-11-22
  • 1970-01-01
  • 1970-01-01
  • 2014-01-20
  • 2018-09-20
  • 2020-01-31
  • 2017-02-18
  • 2015-09-20
  • 2021-11-11
相关资源
最近更新 更多