我想使用 java 编写逻辑回归(分类问题)算法 -
假设是——
谁能告诉我 -<img src="https://i.stack.imgur.com/PcrjI.gif" alt="enter image description here">(-θ 幂 T) 是什么?
我能够编写线性回归,它的假设是相对容易的,但不能从逻辑回归开始。
我想使用 java 编写逻辑回归(分类问题)算法 -
假设是——
谁能告诉我 -<img src="https://i.stack.imgur.com/PcrjI.gif" alt="enter image description here">(-θ 幂 T) 是什么?
我能够编写线性回归,它的假设是相对容易的,但不能从逻辑回归开始。
ΘT 是参数向量 Θ 的转置,ΘTx 是输入特征的线性组合。如果你知道线性回归,那么你可以认为 ΘTx 是线性回归的输出。看下图。
第一部分是线性回归。线性回归的输出是
。由于逻辑回归不是回归而是分类问题,因此您的输出不应该是连续的。相反,您需要任何输入的二进制输出。为此,您需要一个将输入范围映射到 0 到 1 之间的值的函数,以便您可以将一些阈值应用于输出以获取分类。正如你提到的,适合这个的函数是 sigmoid 函数。
重新评估您的问题,线性回归的输出可以写为
术语 = ΘTx 是线性回归输出的向量化实现。所以 ΘT 只不过是参数向量的转置。这可以通过以下数学运算来理解。
有关逻辑回归和编码的详细信息,请查看此链接。
ΘT 表示 theta 矩阵的转置。其中θ矩阵是特征矩阵。在为这些算法编写代码时,我强烈建议您首先使用 MATLAB 或 OCTAVE 软件来计算矩阵。然后,当您确定您的算法正常工作时,在 JAVA 中实现它。
干杯,埃米尔