sym x%建立符号x
%引入新的抽样点数
kl = [];%用于检测n值的中间变量
for p = 1:6
n = [15 20 25 50 100 200];
J = n(p);%设定新的抽样点数
kl(end+1) = J;
MSE_1_10 = zeros(10,100);
for i = 1:10
if i == 1
for j = 1:100
%建立训练样本和测试样本
Random_row = randperm(1000,J);
TrainData = hw1p5data(Random_row,:);
TestData = hw1p5data();
TestData(Random_row,:) = [];
%利用最小二乘法进行拟合训练
x_train = TrainData(:,1);
y_train = TrainData(:,2);
x_text = TestData(:,1);
y_truth = TestData(:,2);%y的真实值
Parameter = polyfit(x_train,y_train,1);
y_test = Parameter(1) .* x_text + Parameter(2);%y的测试值
%计算均方误差
N = 1000-J;%求解数据量
Error = y_truth - y_test;
MSE = dot(Error,Error)/N;
MSE_1_10(sub2ind(size(MSE_1_10), i, j)) = MSE;
end
else
for k = 1:100
%建立训练样本和测试样本
Random_row = randperm(1000,J);
TrainData = hw1p5data(Random_row,:);
TestData = hw1p5data();
TestData(Random_row,:) = [];
%利用最小二乘法进行拟合训练
x_train = TrainData(:,1);
y_train = TrainData(:,2);
x_text = TestData(:,1);
y_truth = TestData(:,2);%y的真实值
Parameter = polyfit(x_train,y_train,i);
%利用polyval函数计算y_test
y_test = polyval(Parameter,x_text);
%计算均方误差
N = 1000-J;%求解数据量
Error = y_truth - y_test;
MSE = dot(Error,Error)/N;
MSE_1_10(sub2ind(size(MSE_1_10), i, k)) = MSE;
end
end
end
%求100次操作的均值
MSE_M = [];
for i = 1:10
MSE_1 = mean(MSE_1_10(i,:));
MSE_M(end+1) = MSE_1;
end
MSE_log = log(MSE_M); %取对数
%绘制log(MSE)与阶数的关系
n = 1:1:10;
xlabel('拟合的阶数');
ylabel('logMSE');
subplot(2,3,p),plot(n,MSE_log),title({'logMSE与拟合阶数的关系', ['拟合阶数 = ', num2str(J)] });
end
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
数据集 hwlp5 data 中包含由非线性函数y=f(x)+n合成的数据,其中n 为加性噪声。请你研究多项式函数能在多大程度上可以用来表示这个关系。 (1)随机选择n=10个数据点作为训练数据,其余数据点用作测试样本。建 立一阶多项式模型(例如,y=ax+b,提示:在 MATLAB 中,使用命令 polyfit)。 以测试样本对测试样本的形式,绘制模型输出。计算模型的均方误差(MSE,模 型预测值与正确输出值之间的平方误差平均值)。 (2)对于 2-10 阶多项式,重复做(1)。 (3)重复做(1)和(2)各 100 次,估计每一阶多项式重复 100 次的平均 MSE。 绘制log(MSE)(即对数尺度的 MSE)与多项式阶数的关系图。 (4)对训练集大小为n={15,20,25,50,100,200},重复做(1)-(3)。 (5) 讨论模型的log(MSE)随多项式阶数和用于训练模型的样本数如何变化。 讨论你的结果。 ================================================================================
资源推荐
资源详情
资源评论
收起资源包目录
PatternRecognizeHW1Problem_5.rar (9个子文件)
PatternRecognizeHW1Problem_5
Ignore.asv 197B
RandomDataTest.mat 51KB
New_n_Repeat_1_3.m 2KB
New_n_Repeat_1_3.mat 96KB
Repeat_1__2_100.m 2KB
Repeat_1__2_100.mat 80KB
For_2_10_Repeat.m 807B
RandomDataTest.m 668B
Ignore.m 197B
共 9 条
- 1
资源评论
小城老师
- 粉丝: 25
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功