机器学习(逻辑回归)

首先介绍一下分类学习,其输出的变量y,是从少量几个可能的值中得出的。

这部分是二分类的内容,也许后面有多分类再补充了。

只有两个可能的分类问题,称为二分类问题,通常用数字0和1来表示模型预测结果y,0为假,1为真。

逻辑函数 Sigmoid函数g(z) = \frac{1}{1+e^{-z}},则 0<g(z)<1,令 z = wx+b

所以预测函数为:f_{w,b}(x) = g(wx+b) = \frac{1}{1+e^{-(wx+b)}},逻辑回归模型,它输入特征或特征集x,然后输出0到1之间的数字,这个输出可看作是:给定输入x的情况下,类别或标签y等于1的概率f_{w,b}(x) = P(y = 1|x:w,b)

当 g(z) >= 0.5时,预测值y` = 1,则由逻辑函数为 z >= 0,即 wx+b >= 0

逻辑回归中的代价函数为

L(f_{w,b}(x^{(i)},y^{(i)}) =\begin{Bmatrix} -log(f_{(w,b)}(x^{(i)})\, \, \, \, \, \, \, \, \, \, \, \, \, \, \, \, \, if\, \, y^{i}=1\\ -log(1-f_{(w,b)}(x^{(i)})\, \, \, \, \, \,if\, y^{i}=0 \end{Bmatrix}

当 y^{i} = 1时,f_{w,b}(x^{i}) \rightarrow 1,则-log(f)\rightarrow 0,即f->0,损失越小。

当 y^{i} = 0时,f_{w,b}(x^{i})\rightarrow 0,则-log(f)\rightarrow 0,即f->0,损失越小。

如果把上面的代价函数写成一条比较简约的公式,可写为:

L(f_{w,b}(x^{i}),y^{i}) = -y^{i}log(f_{w,b}(x^{i})) - (1-y^{i})log(1-f_{w,b}(x^{i}))

再进行简化:

J(w,b) = \frac{\sum_{n=1}^{m}[y^{i}log(f_{w,b}(x^{i}))+(1-y^{i})log(1-f_{w,b}(x^{i}))]}{m}

然后是两条梯度函数

\frac{\partial }{\partial wj}J(w,b) = \frac{\sum_{i=1}^{m}}{m}(f_{w,b}(x^{i})-y^{i})x_{j}^{i}\frac{\partial }{\partial b}J(w,b) = \frac{\sum_{i=1}^{m}}{m}(f_{w,b}(x^{i})-y^{i})

wj = wj -\alpha \frac{\sum_{i=1}^{m}}{m}(f_{w,b}(x^{i})-y^{i})x_{j}^{i}b = b -\alpha \frac{\sum_{i=1}^{m}}{m}(f_{w,b}(x^{i})-y^{i})

下面是拟合的问题

欠拟合:模型对训练数据的拟合不足;   过拟合:与数据吻合得太好了

泛化:即使是对没出现的数据样本其他模型,也能有很好的预测效果

解决过拟合和欠拟合的方法

过拟合:

1、收集更多的数据

2、适用更少的特征(不用太多的多项式特征)

3、正则化,尽可能地让算法缩小参数的值,而不是要求一定要把参数变成0.

正则化的作用是:它让你保留所有的特征,但防止特征权重过大,这有时会导致过拟合

假设

w_{1}x+w_{2}x^{2}+w_{3}x^{3}+w_{4}x^{4}+b,让w3和w4这两个参数变得非常小。

则用一个修改的代价函数

min[\frac{\sum_{i=1}^{m}(f_{w,b}(x^{i})-y^{i})^{2}+1000w^{3}+1000w^{4}}{2m}]

这里w3和w4的取值必须尽量地小,代价函数才会小。

参数值越小,模型可能会简单,也许是因为一个模型的特征变少了,那它过拟合的可能性也变小了。

正则化更多地是惩罚所有参数,让每个数据地参数都尽可能地小

所以在正则化后,代价函数为:

J(w,b) = \frac{1}{2m}\sum_{i=1}^{m}(f_{w,b}(x^{i}) - y^{i})^{2}+\frac{\lambda }{m}\sum_{j=1}^{m}wj^{2}

n:特征数量    \lambda:正则化参数   \lambda>0(需要自己选)

至于参数b,惩罚与不惩罚并没有太大所谓

前一项的目标:拟合数据;       后一项的目标:减小过拟合的风险

正则后梯度下降函数:

\frac{\partial }{\partial wj}J(w,b) = \frac{\sum_{i=1}^{m}}{m}(f_{w,b}(x^{i})-y^{i})x_{j}^{i}+\frac{\lambda }{m}wj\frac{\partial }{\partial b}J(w,b) = \frac{\sum_{i=1}^{m}}{m}(f_{w,b}(x^{i})-y^{i})

wj = wj -\alpha \frac{\sum_{i=1}^{m}}{m}(f_{w,b}(x^{i})-y^{i})x_{j}^{i}-\alpha \frac{\lambda }{m}wjb = b -\alpha \frac{\sum_{i=1}^{m}}{m}(f_{w,b}(x^{i})-y^{i})

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习逻辑回归是一种常用的分类算法,它通过建立一个逻辑回归模型来对数据进行分类。在matlab中,可以使用吴恩达在Coursera上提供的机器学习编程练习ex2来实现逻辑回归。[1] 逻辑回归的实际意义是通过给定的输入数据,预测输出的分类结果。比如,在一个芯片测试数据集中,我们希望根据芯片的测试数据来预测芯片是否合格。为了实现这个目标,我们可以使用逻辑回归模型来建立一个分类器。 在实现逻辑回归模型时,我们需要对损失函数进行正则化处理,以防止过拟合。在matlab中,可以使用正则化的逻辑回归来完成这一步骤。 在预测新的样本数据时,我们可以使用sigmoid函数将预测的概率值转化为0或1的分类结果。具体的matlab代码可以在predict.m中找到。 综上所述,机器学习逻辑回归在matlab中可以通过使用吴恩达在Coursera上提供的机器学习编程练习ex2来实现,同时可以通过正则化处理来防止过拟合,并使用sigmoid函数进行预测。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【机器学习】 吴恩达机器学习作业 ex2逻辑回归 Matlab实现](https://blog.csdn.net/m0_52427832/article/details/125358227)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值