我是靠谱客的博主 外向小蜜蜂,最近开发中收集的这篇文章主要介绍牛顿法在回归分析中的应用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

      前面已经讲过一些参数优化的方法,现在来讲牛顿法在回归分析中的应用。


下面给出实验结果


main.m

x = load('ex3x.dat');
y = load('ex3y.dat');
trustRegionBound = 1000;
x = [ones(size(x,1),1) x];
meanx = mean(x);%求均值
sigmax = std(x);%求标准偏差
x(:,2) = (x(:,2)-meanx(2))./sigmax(2);
x(:,3) = (x(:,3)-meanx(3))./sigmax(3);
itera_num = 2000; %尝试的迭代次数
sample_num = size(x,1); %训练样本的次数
jj=0.00001;
figure
alpha = [0.1];%因为差不多是选取每个3倍的学习率来测试,所以直接枚举出来
plotstyle = {'b-'};
theta_grad_descent = zeros(size(x(1,:)));
%% 牛顿法
theta = zeros(size(x,2),1); %theta的初始值赋值为0
Jtheta = zeros(itera_num, 1);
Q=x'*x;
for i = 1:itera_num %计算出某个学习速率alpha下迭代itera_num次数后的参数
Jtheta(i) = (1/(2*sample_num)).*(x*theta-y)'*(x*theta-y);%Jtheta是个行向量
grad = (1/sample_num).*x'*(x*theta-y);
d=-(inv(Q)*grad);
a=(grad'*grad)/(grad'*Q*grad);
theta = theta + a*d;
end
K(1)=Jtheta(500)
plot(0:999, Jtheta(1:1000),'b--','LineWidth', 4);
hold on
%%
legend('Newton method');
xlabel('Number of iterations')
ylabel('Cost function')


最后

以上就是外向小蜜蜂为你收集整理的牛顿法在回归分析中的应用的全部内容,希望文章能够帮你解决牛顿法在回归分析中的应用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部