用非正交多项式拟合10维函数回归 matlab举例
时间: 2023-11-21 19:04:44 浏览: 139
一维离散数据的正交多项式最小二乘拟合_最小二乘拟合_正交多项式_一维离散数据的正交多项式最小二乘拟合_
5星 · 资源好评率100%
以下是使用非正交多项式进行多元回归的示例代码:
```matlab
% 生成10维随机数据
X = randn(100,10);
y = sum(X.^2,2) + randn(100,1);
% 定义非正交多项式
p = 3;
polyfun = @(x) [x.^2 x.^3 x.^4 x.^5];
% 构建设计矩阵
Xpoly = [];
for i = 1:size(X,2)
Xpoly = [Xpoly polyfun(X(:,i))];
end
% 拟合回归模型
b = regress(y,Xpoly);
% 预测新数据
Xnew = randn(10,10);
Xpoly_new = [];
for i = 1:size(Xnew,2)
Xpoly_new = [Xpoly_new polyfun(Xnew(:,i))];
end
ypred = Xpoly_new*b;
% 绘制预测结果和真实值的比较图
plot(1:length(ypred), ypred, 'r', 1:length(y), y, 'b')
legend('预测', '真实值')
```
在此示例中,我们首先生成了10维随机数据,并使用非正交多项式生成高阶特征。然后,我们使用`regress`函数拟合回归模型并预测新数据。最后,我们将预测结果和真实值绘制在同一张图表中,以进行比较。
阅读全文