【发布时间】:2021-05-06 11:30:13
【问题描述】:
我之前在这个领域的话题。
Problem in solving algorithm polynomial regression,least squares method in Octave
我决定不更改主要问题,而是为每个问题创建一个新问题。
这一次,问题如下。我在多项式回归中使用了最小二乘法。
将该函数对参数b的向量进行微分并将导数设为零,我们得到方程组(矩阵形式)。这个公式。
也就是说,如果我想从这里表达b,我需要做我所做的。
b=X^{T}y/(X^{T}X)=> b=X'*y1/(X'*X)
代码:
#Generating random values of experimental data
x=0:0.1:5;
y=3*x+2;
y1=y+randn(size(y));
k=5;#Polynomial degree
X=[x' ones(length(x),1)];
b=X'*y1/(X'*X); Error: operator *: nonconformant arguments (op1 is 2x51, op2 is 1x51)\
是的,数组X 和y1 的尺寸不重合。附加的屏幕截图将显示所有内容。在此屏幕截图中,变量 X、y1 和 X'(转置)。
然后我决定从数组X 中选择一列并将其乘以y1。
如果您查看屏幕截图,您会发现现在转置的X' 与y1 维度匹配。也就是说,应该没有错误,但它仍然存在。
【问题讨论】:
-
请注意
A/B与B\A不同。如果你从(X'*X) * b = X' * y1开始,那么你在两边都左除以(X'*X)来求解b:(X'*X) \ (X'*X) * b = (X'*X) \ X' * y1->b = (X'*X) \ X' * y1。
标签: regression octave octave-gui