malab实现,参数估计的梯度下降法
2016-12-15 23:50
519 查看
1.公式推导
naïve贝叶斯可以获得函数的后验概率:则:
且:
此式大于0时,此时P(Y=0|X)>P(Y=1|X),获得线性划分:
最大条件似然是求使:
出现最大值的情况(即W的取值)。
先对该式进行对数运算:
经过化简,获得:
对W中所有元素求偏导:
获得梯度下降需要的表达式:
将其转换为矩阵更新运算:
W=W+ηX(Y-hY)
2.具体matlab实现
x=[1,2,3,4,5,6,7,8,9,10,11,12; 12,3,2,4,9,10,1,2,7,1,5,6];%two features y=[1,0,0,0,1,1,0,0,1,0,1,1];%12 points m=length(x(:,1)); n=length(x(1,:)); rx = x+ normrnd(0,2,m,n);%add noise RX= ones(m+1,n); for i=1:m RX(i+1,:)=rx(i,:); end%Initialize a=0.01;%Step length s=ones(m+1,1); s=s+0.3*sqrt(0.5)*randn(size(s));%Initialize W hy=ones(n,1); num=1; l=s'*RX*y'-sum(log(1+exp(s'*RX))); %所求的最大表达式l(W) rs=1; while(rs>0.0001||rs<0) for i=1:n hy(i)=1-1/(1+exp(s(1)+s(2)*x(1,i)+s(3)*x(2,i)));%get hy end s=s+a.*RX*(y'-hy);%Matrix operations ol=l; l=s'*RX*y'-sum(log(1+exp(s'*RX))); rs=l-ol; if(rs<0) a=a/2; end; num=num+1; end for i=1:n%Draw point if(y(i)==1) plot(rx(1,i),rx(2,i),'ro'); hold on; else plot(rx(1,i),rx(2,i),'go'); hold on; end end ss=ones(1,2); ss(1)=-s(2)/s(3); ss(2)=-s(1)/s(3); xx = -10:0.1:20; yy=polyval(ss,xx); plot(xx,yy);%Linear classification hold on;
3.线性划分与数据点:
相关文章推荐
- 最小二乘参数估计---梯度下降法求解参数的sas代码实现
- 梯度下降法实现(step-by-step)
- python 实现梯度下降
- 随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比、实现对比
- 参数寻优:梯度下降/牛顿下降法 追根溯源
- 随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比、实现对比
- 随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比、实现对比
- 《神经网络和深度学习》系列文章六:通过梯度下降法学习参数
- 随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比、实现对比
- C语言实现随即梯度下降,批量梯度下降法
- Matlab梯度下降及正规方程实现多变量的线性回归
- 梯度下降(Gradient Descent)简析及matlab实现
- 参数学习算法之梯度下降
- 随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比、实现对比
- 线性回归梯度下降matlab实现
- 参数线性回归和梯度下降
- 线性回归与梯度下降(附Matlab实现)
- 随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比、实现对比
- 【转】 随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比、实现对比
- 随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比、实现对比