在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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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