algorithm - 局部加权逻辑回归

标签 algorithm matrix machine-learning linear-algebra regression

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

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

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

第 66 页的公式 4-4,牛顿-拉夫森算法本身,对我来说没有意义。根据我对 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 是 Euler 常数,恰好该比率始终为 2.718:1,还是其他?无论哪种方式,对我来说,解释似乎都没有暗示它是一个向量,这让我感到困惑。

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

所以,我的两个主要问题是,第 67 页的 e 是什么,我需要的是 1xN 矩阵,pi' 等式 4-5 的末尾是一个数字?

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

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

最佳答案

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

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

关于algorithm - 局部加权逻辑回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12878058/

相关文章:

performance - 如何计算三重嵌套循环中的频率计数

algorithm - 用于测试确定性素数的 Miller-Rabin 的修改版本?

algorithm - 寻找 nlogn 算法的下界

matlab - 从现有矩阵中提取矩阵

machine-learning - 来自 pcalg 的 PC 稳定版

python - 防止 RandomizedSearchCV 预测 KNN 分类器的所有一类

algorithm - 使用最小调用次数打印多项式

JavaScript 矩阵边界不正确

matlab - 根据数组的长度创建数字模式

machine-learning - 被机器学习淹没 - 有 ML101 的书吗?