在机器学习类(class)中,我无法可视化以下输入。
我们在逻辑回归中有以下方程:
我们可以在sigmoid.m
中将其写为 Octave 音程:
g = (1 ./ ( 1 + e.^(-z)));
现在,为了计算costFUnction.m
,我们得到的概率为:
h = sigmoid(X*theta);
来自,上图,不应该是:
h = sigmoid(theta'*X);
我在这里缺少什么。我是机器学习新手,所以如果我在这里遗漏了什么,请原谅我。
最佳答案
最重要的是理解每个向量的含义。在大多数类(class)中他们都会谈论
h = theta'* x
但这里他们使用列向量,因此 h 是一个训练示例的标量。 矢量化符号告诉你
h = X * theta
其中 X 是所有训练示例的矩阵,其中每个示例是一行,特征是列。所以 m x n 有 m 个训练样例和 n 个特征。您希望 h 为每个训练示例提供输出,因此您需要一个 m x 1 矩阵。您知道 theta 将是一个 n x 1 矩阵,因为它是每个特征的 theta 并且您有 1 个模型。如果你执行我在顶部写下的第二个公式,你将得到 h m x 1 矩阵,这是首选的。
关于machine-learning - 编写 sigmoid 函数,输入为 (X * theta),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53914250/