大白话5分钟带你走进人工智能-第十九节逻辑回归之优化点(4)

                                                                                      第十九节逻辑回归之优化点(4)

上一节中我们讲解了逻辑回归导函数求解的问题,一步步推导出交叉熵损失函数的梯度。很是不容易,这节中我们一起看下逻辑回归的优化有哪些点?

第一点关于逻辑回归优化:和多元性回归是一模一样。要不要设置w0?比如下图:

?

之前说多元性回归是做拟合,假如现在要分类的话,我们知道分类对于一维来说是找一个点,对于二维来说是来找条线。如果根据现在已知的点,利用多元线性回归做分类,找到比较好的分界线就是w1*x1+w2*x2+b=0这条线,它肯定会有截距,并且截距不为零。如果不设置w0的话,就意味着要找的线,它必须得过原点。所以说在多元性回归里面,设置w0,就意味着有更多找到最优解的可能性。下图是有w0和无w0的对比:

?

而对于逻辑回归来说,同样如此。如果设置w0,意味着有更多的可能性去找到最优解的分界线,然后把已有的数据分开;如果不设置w0,意味着分界线必须得穿过原点,不可能找到完美的把红绿两个类别分开。 我们设置截距w0的方式是手动的为数据集x增加一列全1。因此第一点:逻辑回归的优化或者也可以把它泛化成多元线性回归的优化,就是设置截距w0

第二点关于逻辑回归优化:如果碰到线性不可分的问题,我们可以考虑进行升维。怎么来看它到底是不是线性不可分呢?我们可以把数据集放到逻辑回归里面去,算个模型出来,如果那个模型的准确率差了八丈远,很有可能会产生线性不可分的问题,你调整数据就行了。没有必要说拿到数据,先看数据的分布,看它是不是线性不可分的。比如下图:

?

如果做分类,要找到分界线,横轴是x2,纵轴是x1,两个维度,我们能不能在二维里面找到一个线,对已有的数据进行很好的分割?答案是不能,为什么要强调线?因为逻辑回归,它就是θTx,只不过是对它进行一步缩放。

所以逻辑回归的本质还是线性的,如果用逻辑回归基于现在的数据点不动,我们就一定得找个直线,对二维的数据点进行分割,但是这是线性不可分的情况。不可能找到直线对数据进行分割。所以直线不行,能不能找一个曲线,对已有数据进行分割?当然可以,但是用曲线的话就不叫逻辑回归,就叫其它的算法了。如果非要用逻辑回归,将data数据带到agorithm算法里面,开发结果是模型。如果算法保持不动,为了让模型拟合的更好,或者是分类更好,我们就要改数据。之前在多元线性回归改变数据叫升维,比如说年龄和收入它不是线性变化的,那么给x数据里面多加一个age的平方,再多加一个维度进来。

这个地方思路也是一样的,升维。经验告诉我们是相乘,就是再多加一个维度,计算机模拟之后这个加的维度是x1*x2。当然如果用多项式回归对原来数据集加上x1^2+x2^2+x1*x2也可以,所以当维度少的情况下,可以人为地去升维,添加新的维度;维度多的情况下,直接多项式回归。

我们用几何图示表示,把点投影到高维空间中去,也就是升维,比如下面这张图:

?

会发现当再多一个维度的话,原来的数据点就得把它映射到更高的维度里面去,这里面多了一个x1x2的轴,这样我们能不能给它分割?我们知道一维的情况下,如果找到分界,一个轴的分界就是一个点;二维的情况下是个平面,如果要找到分界,对于线性回归来说是条直线;如果是三维的话,如果把一个立体分成两部分,我们需要一个平面。变成三维之后生成一个维度,原来线性不可分的就变成线性可分的了,就是去找一个平面,把两个不好分的类别很好的分开。这就意味着我们可以再一次去应用线性的模型逻辑回归去找一个平面,相当于改变数据点,去升维来做分类了。

第三点关于逻辑回归优化:改变阈值。之前灌输的概念是0到1的区间,我们拿0.5来作为分界,大于0.5的就是1这个类别;小于0.5的就是0这个类别。但是0.5这个阈值可以调可以变,根据需求来变。如果是0到1这个区间范围内,把0.5作为一个分类的阈值的话,你觉得对正例和负例进行分类是公平的。什么叫不公平?就是把阈值从0.5调到0.3,小于0.3的才是负例,大于0.3的才是正例。

我们看个生活中的例子,假如模型是来判别某个病人它是否得了癌症,如果病人是癌症,模型给它判定成不是癌症,这件事情很明显是判错;还有一种情况如果病人它没有得癌症,模型判别是癌症,也是判错了。这件事情哪一个更不能接受,就要看需求,看医院算法工程师告诉你的需求是什么,假如医院告诉我的需求是如果病人是癌症,模型给它判定成不是癌症这种情况不可饶恕。你就要把这种错误发生的概率给它变小。什么情况判定为不是癌症?是和不是就是一个正例和一个负例。如果想要避免上面这种情况发生,我们可以把阈值从0.5调成0.3,换句话说就是模型判别的结果?小于0.3,我们认为没有得癌症,如果大于0.3,就认为得了癌症,也就是尽可能的多判断些癌症病人出来,使如果病人是癌症,模型给它判定成不是癌症这种情况少发生点。因为?大于0.3就说你得癌症了,其实很多人没有得癌症,所以错误率变大就是代价。虽然整体的错误率大了,但是规避一些不能接受的风险。这风险按需求来定。

事实上阈值调整经常发生,比如你设计一个模型,公司让你用这个模型去炒股,如果是0.5的话就意味只要大于0.5,认为这支股票会涨;只要小于0.5,就告诉公司会跌很高了。实际上大于0.5的情况很多,0.51大于0.5,0.99大于0.5,0.49小于0.5,0.01小于0.5。所以那些股票的软件它通常都是把这个阈值大于0.8,它会告诉公司说这支股票会涨,小于0.2才会告诉公司这支股票会跌。根据调整阈值可以来规避一些不能接受的风险。因为51%会涨,49%会跌,这个风险还是很大的。比如说去银行里面买理财,它首先会让我到一个表,之后她说我是最保守型用户,意味着理财产品大于0.95的时候我才会去买,小于0.95的都不会去买。其实就是它通过填表,获取到了你这个人心中的一个阈值。所以阈值是可以来调的。

阈值是在什么时候来调的?就是θ已经算出来了,你要去使用这个模型,θ和x带到1/(1+e-θTx)公式里面来,然后会得到一个?,是0到1之间的一个值,在使用?的时候,你不再跟0.5进行判别了,而是跟0.3进行判别。特意强调一下,阈值0.5和0.3是在使用的时候才会去改,在训练的时候其实和阈值没关系。因为训练时候,正例就是1.0的概率,负例就是0.0概率,所以它在训练的时候没有这样的阈值,只有在使用的时候才有阈值。

我们总结下逻辑回归优化:

第一点是设置w0,最好加上,多元性回归里面同样也可以加上w0,为了有更多的模型的可能性。

第二点是升维, 升维在多元性回归里面,是为了更好的拟合非线性的数据,在逻辑回归里进行升维是为了解决线性不可分的问题。

第三点是为了去规避一些风险,在使用模型的时候可以去调一下阈值,默认二分类阈值就是0.5,那我们可以把它调高或者调低,根据需求来定。

原文地址:https://www.cnblogs.com/LHWorldBlog/p/10799450.html

时间: 2024-07-31 14:11:01

大白话5分钟带你走进人工智能-第十九节逻辑回归之优化点(4)的相关文章

大白话5分钟带你走进人工智能-第十四节过拟合解决手段L1和L2正则

                                                                                                  第十四节过拟合解决手段L1和L2正则 第十三节中,我们讲解了过拟合的情形,也就是过度的去拟合训练集上的结果了,反倒让你的模型太复杂.为了去解决这种现象,我们提出用L1,L2正则去解决这种问题. 怎么把正则应用进去?我们重新审视目标函数,以前我们可以理解目标函数和损失函数是一个东西.而有正则的含义之后,目

大白话5分钟带你走进人工智能-第二十五节决策树系列之信息增益和信息增益率(4)

                                                       第二十五节决策树系列之信息增益和信息增益率(4) 上一节我们讲解了决策树的分裂条件以及评估纯度的其中一个方式,基尼系数.本节的话,我们再讲解一个评估纯度的方式,基于信息增益的方式,即ID3树使用的评估方式.它办的事跟Gini系数一样,也是评价纯度,但是它更客观一点,但它算起来比Gini系数稍慢一点,它办的事跟Gini系数一样,也是评价纯度,但是它更客观一点,算起来比Gini系数稍慢一点,

大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5)

                                                    大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5) 上一节中,我们讲解了逻辑回归的优化,本节的话我们讲解逻辑回归做多分类问题以及传统的多分类问题,我们用什么手段解决. 先看一个场景,假如我们现在的数据集有3个类别,我们想通过逻辑回归建模给它区分出来.但我们知道逻辑回归本质上是区分二分类的算法模型.难道没有解决办法了吗?办法还是有的,既然想分出3类,我们姑且称这3个类

大白话5分钟带你走进人工智能-第二十八节集成学习之随机森林概念介绍(1)

                                                      第二十八节集成学习之随机森林概念介绍(1) 从本系列开始,我们讲解一个新的算法系列集成学习.集成学习其实是怎么样去应用决策树解决一些问题. 在机器学习领域集成学习是一种非常简单直接的提升分类器回归器预测效果的一种思路.决策树有一个困境,当层数太深的时候会有过拟合问题,当我不想过拟合,就通过预剪枝给它砍掉一部分深度,此时损失又容易太大了,导致在训练集上预测的又不怎么准.所以对于决策树很难去找

大白话5分钟带你走进人工智能-目录

                                                                                目录 大白话5分钟带你走进人工智能-第一节开篇介绍以及线性回归简介篇 大白话5分钟带你走进人工智能-第二节概率基础及高斯分布 大白话5分钟带你走进人工智能-第三节最大似然推导mse损失函数(深度解析最小二乘来源)(1) 大白话5分钟带你走进人工智能-第四节最大似然推导mse损失函数(深度解析最小二乘来源)(2) 大白话5分钟带你走进人工智

大白话5分钟带你走进人工智能-第十八节逻辑回归之交叉熵损失函数梯度求解过程(3)

                                               第十八节逻辑回归之交叉熵损失函数梯度求解过程(3) 上一节中,我们讲解了交叉熵损失函数的概念,目标是要找到使得损失函数最小的那组θ,也就是l(θ)最大,即预测出来的结果在训练集上全部正确的概率最大.那我们怎么样找到我们的最优解呢?上节中提出用梯度下降法求解,本节的话我们对其具体细节展开. 先来看下我们用梯度下降求解最优解,想要通过梯度下降优化L(θ)到最小值需要几步? 第一步,随机产生w,随机到0附近会

大白话5分钟带你走进人工智能-第34节神经网络之多神经网络概念(2)

目录 1.回顾: 2.常见的激活函数都有哪些? 3.多层神经网络里面故事: 4.如何训练神经网络? 1.回顾: 回顾下之前学习的内容.人工神经网络里面有重要的三条内容,一个是加和,加function,把前面的输入所对应模型的权重相乘相加,第二经过一个非线性变化,第三signal out输出.如果把function设置为Sigmoid函数,它相当于是一个逻辑回归. 2.常见的激活函数都有哪些? ? 第一个叫01函数,它要么就是0,要么就是1: 第二个叫Sigmoid函数: ? 可以是linear:

大白话5分钟带你走进人工智能-第35节神经网络之sklearn中的MLP实战(3)

本节的话我们开始讲解sklearn里面的实战: 先看下代码: from sklearn.neural_network import MLPClassifier X = [[0, 0], [1, 1]] y = [0, 1] clf = MLPClassifier(solver='sgd', alpha=1e-5, activation='logistic', hidden_layer_sizes=(5, 2), max_iter=2000, tol=1e-4) clf.fit(X, y) pre

走进软件第十九组第一次实验

---恢复内容开始--- 第十九组 队名:19-TFBGS 队员 学号 齐彤彤(组长) 2018012392 刘天健 2018013192 刘铭恺 2018011519 陈玉质 2018013384 潘炳名 2018010280 队员风采 齐彤彤(组长) 时而腼腆内向,时而活泼开朗,自认为做事情麻利,不拖泥带水,擅长唱跑调的歌,对编程还可以谁不上喜欢也说不上讨厌. 宣言:哪有那么多一夜成名,其实都是百炼成钢. 刘天健 严肃认真,呆萌可爱,擅长写毛笔字,下围棋,对编程的兴趣适中 宣言:知道生活的真