用(X * theta)输入编写S型函数

时间:2018-12-24 13:45:48

标签: machine-learning octave logistic-regression

在机器学习课程中,我无法看到下面的输入。

我们在Logistic回归中具有以下等式:

insertMany

我们可以在sigmoid.m中以八度形式编写它:

g = (1 ./ ( 1 + e.^(-z)));

现在,要计算costFUnction.m,我们得到的概率为:

h = sigmoid(X*theta);

从上面的图片来看,应该不是:

h = sigmoid(theta'*X);

我在这里想念什么。我是ML的新手,如果我在这里缺少任何东西,请原谅我。

2 个答案:

答案 0 :(得分:2)

最重要的是了解每个向量的含义。他们在大多数课程中都在谈论

    h = theta'* x

但是这里他们使用列向量,因此h是一个训练示例的标量。 向量化符号会告诉您

    h = X * theta

其中X是所有训练示例的矩阵,其中每个示例都是一行,要素是列。因此,m x n具有m个训练示例和n个特征。您希望h给出每个训练示例的输出,因此您需要m x 1矩阵。您知道theta将是n x 1矩阵,因为它是每个要素的theta,并且您有1个模型。如果您执行我在顶部写下的第二个公式,则将得到m x 1的矩阵,这是首选。

答案 1 :(得分:1)

如果您引用the material shared here,您会看到

enter image description here

我们想要的h(x)是:

enter image description here

enter image description here

将其可视化:

X =  [ 1 x1 ; 1 x2 ; 1 x3;]
theta = [ t0 t1;]
X * theta
% will give  [ t0+(x1*t1) ; t0+(x2*t1) ; t0+(x3*t1) ; ] 

其中上述矩阵的每一行代表独立的假设。