局部加权逻辑回归

And*_*ham 7 algorithm regression machine-learning matrix linear-algebra

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

我的主要资源是Kan Deng博士论文,他在其中描述了我觉得非常简单的算法.到目前为止,我在图书馆的工作就在这里.

我在尝试计算B(beta)时遇到了麻烦.据我所知,B是一个(1+d x 1)向量,代表特定点的局部加权.之后,pi该点的(正输出的概率)是基于该点的S形函数B.要获得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是一个比例,这对我来说没有意义.是Eu Euler's Constant,恰好这个比例总是为2.718:1,还是其他的呢?无论哪种方式,对我来说,解释似乎并没有暗示它是一个向量,让我感到困惑.

使用pi'对我来说也很困惑.公式4-5,sigmoid函数wrt B的导数给出一个常数乘以一个向量或一个向量.但是,根据我的理解,pi'它应该是一个数字,乘以w并形成权重算法W的对角线.

所以,我在这里的两个主要问题是,e第67页是什么,是1xN我需要的矩阵,以及pi'4-5中的数字如何最终得到一个数字?

我意识到这是一个难以回答的问题,所以如果有一个好的答案,那么我会在几天后回来并给它一个五十分的赏金.我会给邓博士发一封电子邮件,但我无法知道他在1997年后发生了什么事.

如果任何人对此算法有任何经验或知道任何其他资源,将非常感谢任何帮助!

mcd*_*lla 5

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

如果你可以从Ruby调用Java,你可以使用http://weka.sourceforge.net/doc.stable/weka/classifiers/functions/Logistic.html中描述的Weka中的逻辑分类器- 这说"虽然原始的Logistic回归不处理实例权重,但我们稍微修改算法来处理实例权重." 如果没有别的,你可以下载它并查看它的源代码.如果你这样做,请注意它是一种相当复杂的方法 - 例如,他们事先检查是否所有点实际上都在输入空间的某个子空间中,并且如果它们那么向下投影.