machine-learning - 编写 sigmoid 函数,输入为 (X * theta)

标签 machine-learning octave logistic-regression

在机器学习类(class)中,我无法可视化以下输入。

我们在逻辑回归中有以下方程:

enter image description here

我们可以在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/

相关文章:

python - 没有从我的逻辑回归实现中获得正确的系数等高线图?

java - 在 Java 中使用随机森林打印实际和预测的类标签

matlab - 使用反向传播算法进行字符识别测试

machine-learning - 如何在 MATLAB 中高效计算神经网络应用中训练/测试集的 MAPE?

gnuplot - 绘制一条平均曲线的直线

python - 使用 scikit learn 在逻辑回归中所有系数都变为零

python - 洋红色多风格仿作生成器仅生成纯黑色图像?

matlab - For 循环将矩阵拆分为大小相等的子矩阵

octave - 在 Octave : undefined symbol 中编译 vlfeat mex

machine-learning - 为什么神经网络有多层且每层有多个节点?