赞
踩
实现多项式回归,李航《统计机器学习》关于偏导数的求解是错误的,使用正确的求导公式实现,并获得了期望的效果
- %输入空间
- X = [1;2;5;6;10];
- a = size(X, 1);
- b = size(X, 2);
- %输出空间
- Y = [1;10;2;9;1];
- %假设空间以及模型选择
- theta_1 = [0; 0];
- theta_2 = [0; 0; 0; 0];
- theta_3 = [0; 0; 0; 0; 0; 0];
-
- %一。利用正规方程求解损失函数为平方损失函数的多项式回归
- %1.选择假设空间theta_1
- SNX = [X];
- %添加X0默认为1,为了作为w0的输入
- SNX = [ones(size(SNX, 1),1),SNX];
- theta_1 = inv(transpose(SNX)*SNX)*transpose(SNX)*Y;
- figure('NAME', '平方损失一阶');
- plot(X,Y)
- hold on
- plot(X,SNX*theta_1)
-
-
- %2.选择假设空间theta_2
- SNX = [X, X.^2, X.^3];
- %添加X0默认为1,为了作为w0的输入
- SNX = [ones(size(SNX, 1),1),SNX];
- theta_2 = inv(transpose(SNX)*SNX)*transpose(SNX)*Y;
- figure('NAME', '平方损失三阶')
- plot(X,Y)
- hold on
- plot(X,SNX*theta_2)
-
-
- %3.选择假设空间theta_3
- SNX = [X, X.^2, X.^3, X.^4, X.^5];
- %添加X0默认为1,为了作为w0的输入
- SNX = [ones(size(SNX, 1),1),SNX];
- theta_3 = inv(transpose(SNX)*SNX)*transpose(SNX)*Y;
- figure('NAME', '平方损失五阶')
- plot(X,Y)
- hold on
- plot(X,SNX*theta_3)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。