在Octave中,这两个成本函数是否等价?

one = sum((X*theta) - y) .^2)/(2*m);two = ((X'*theta - y)*(X*theta - y) ) / 2*m;% where X' == X transpose, so I can do matrix multiplication.

“One”已成功用于线性回归的单变量成本函数。看起来“One”也适用于计算多变量线性回归问题的成本。

“Two”是某一非常受欢迎的机器学习课程中建议用于多变量方法的公式 🙂

它们是相同的方法吗,还是“One”只是碰巧在多变量训练集上有效呢?


回答:

第二个公式在我看来似乎不正确。

演示:

>> theta = [2;3];>> X = [1 2; 3 4; 5 6; 7 8];>> y = [7;8;9;10];>> m = length(y);>> ((X'*theta - y)*(X*theta - y) ) / 2*merror: operator *: nonconformant arguments (op1 is 2x4, op2 is 2x1)

如果我们修正第一个公式中缺少的括号问题,第一个公式似乎是正确的:

>> sum(((X*theta) - y) .^2)/(2*m)ans =  155.75

另一种向量化的公式:

>> (X * theta - y)' * (X * theta - y) / (2*m)ans =  155.75

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注