关于吴恩达机器学习逻辑回归的补充!!!

本文讲述了如何在逻辑回归中处理非线性问题,如圆锥曲线,通过引入多元特征和使用sigmoid函数归一化,优化梯度下降过程。作者通过代码示例展示了如何使用ex2data2.txt数据集进行模型训练,并对比了线性模型与高次函数模型的预测效果。
摘要由CSDN通过智能技术生成

我觉得之前我对于逻辑回归的理解过于浅薄,当逻辑回归是直线的时候游刃有余但是当是高次的时候说实话一下子有点懵,我认为还是对逻辑回归认识不清导致,而且只练习了一组数据。

接下来让我们看一下当边界函数是一个圆锥曲线的时候我们该如何处理

显然,这些数据点需要用一个圆锥曲线的二元函数来区分那我们不妨设

g\left ( x _{1},x_{2}\right )=\theta _{1}x_{1}+\theta _{2}x_{2}+\theta _{3}x_{1}^{2}+\theta _{4}x_{2}^{2}+\theta _{5}

然后设

h\left ( x \right )=\frac{1}{1+e^{-g(x1,x2)}}

然后这里把分割的函数换成h(x),我在这里讲一下我对于这其中的理解哈

我们先看函数g(x),很明显这个设法设出的函数目的是去分割这些不同的样本点,但是假如带入值后数据很大很大怎么办?这不仅仅严重影响梯度下降的一个可行性而且影响我们预测的准确度!

所以这个时候我们把预测结果给用sigmoid函数归一化去减少这些影响,g(x)很大或很小甚至是负数‘的时候,h(x)将始终小于1.

然后我们把上一章列出的代价函数直接拿出来用即可

这里就算是1/(1+e^(-g(x)),对其求偏导的结果也和上次的结果差不多,这里就不多加赘述,感兴趣的话可以参考我下面的两篇文章然后自己推一下

吴恩达机器学习笔记之第六章中代价函数的化简与梯度下降公式结果推导-CSDN博客

吴恩达机器学习笔记第六章逻辑回归分析以及代码实现-CSDN博客

其实只是把g(x)看成了\theta ^{T}x

这边就直接上代码了哈

load ex2data2.txt
x=[ex2data2(:,1:2)]';
y=ex2data2(:,3);
x_k=[x;x.^2;ones(1,118)];
theta=zeros(5,1);
for i=1:4000
h=theta'*x_k;    
theta=theta-0.01*(((1+exp(-h))'.^(-1)-y)'*x_k')';   %逻辑回归,代价函数梯度下降
end
colors=jet(2)       %先设置好两种颜色以方便后续区分
scatter3(x(1,:),x(2,:),y,50,colors(y+1,:),'filled')
hold on
x_p=min([x(1,:),x(2,:)]):0.01:max([x(1,:),x(2,:)]);
sz=size(x_p,2);
k=theta(1)*x_p+theta(3)*x_p.^2+theta(5)*ones(1,sz)       算x2的话,x1就当常数处理
sqrt(theta(2)^2-4*theta(4)*k)                
y1=(-theta(2)+sqrt(theta(2)^2-4*theta(4)*k))/(2*theta(4))     %计算y的值,把y当x2
y2=(-theta(2)-sqrt(theta(2)^2-4*theta(4)*k))/(2*theta(4))
%由于每次只画了半边所以画两次
plot3(x_p,y1,(1+exp(-theta'*[x_p;y1;x_p.^2;y1.^2;ones(1,sz)])).^(-1))  
plot3(x_p,y2,(1+exp(-theta'*[x_p;y2;x_p.^2;y2.^2;ones(1,sz)])).^(-1))
hold off

我们来看一下结果

哈哈哈哈拟合的还不错哈

其实我们也可以尝试一下这样的情况,假如我只用一条线去预测呢?来,我们也试试看

这样我们就只需要一个plot3了,我们看一下代码怎么修改

%只要把y和x_p绑成一个关系就好,我这里是y=x_p,然后把x_p带入式子去算h(x)我们就可以得到一个区分的曲线
plot3(x_p,x_p,(1+exp(-theta'*[x_p;x_p;x_p.^2;x_p.^2;ones(1,sz)])).^(-1))

虽然效果也还行吧,但是我觉得效果和原来的相比效果相差不少,这边还是首推前文的方法吧,这个方法了解就好了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值