mark
  一、简介  LR(Logistic Regression,逻辑回归)虽然名字中带有"回归",但实际上是一种用于分类问题的统计学习方法,而不是传统的回归问题。它是一种广泛应用于机器学习和统计分析的算法,特别适用于二分类问题,也可以扩展到多分类问题。LR的基本思想是,通过一个线性函数的组合,将特征和类别之间的关系建模为一个概率。然后,通过一个逻辑函数(通常是sigmoid函数)将这个概率转化为一个落在0到1之间的数,表示某样本属于某一类别的概率。在训练过程中,LR会调整模型参数,使得模型预测的概率与实际类别标签尽可能一致。  二、面经  1、写一下LR的公式,它的损失函数是什么,推导一下?  参考回答:它的公式就是里面一个线性的函数,然后通过一个sigmoid激活函数组成,能够将所有的输入映射到[0,1]这个一个区间中。逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。  LR的公式如下:    LR的损失函数如下:    损失函数的推导如下:    2、介绍一下逻辑回归和线性回归的关系?  参考回答:逻辑回归和线性回归虽然在名称上很相似,但实际上是两个不同的算法,用于解决不同类型的问题。以下是它们之间的关系和区别:  1、逻辑回归用于解决分类问题,线性回归用于解决预测回归问题;  2、逻辑回归的输出是一个概率值,表示属于某一类别的概率,范围在0到1之间;线性回归的输出是一个连续的数值,可以是任意实数;  3、逻辑回归使用交叉熵损失函数,衡量模型预测概率与实际标签之间的差距;线性回归通常使用均方误差(MSE)等损失函数,衡量预测值与真实值之间的差距。  4、逻辑回归通过最小化损失函数来估计参数,通常使用梯度下降法或其他优化算法。线性回归也通过最小化损失函数来估计模型参数,通常使用最小二乘法或梯度下降法。  3、LR的损失函数以及逻辑回归和最大似然的关系?  参考回答:LR的损失函数为交叉熵损失,也可以叫做logloss对数损失,它的具体公式也在面经1中已经介绍了,可以返回详细看下。简单来说,它就是假设样本服从伯努利分布(0-1),我们就能求的单个样本的极大似然函数,然后扩散到整个样本集,就能得到整个样本的似然函数,我们的目的就是要求得这个似然函数的最大值,也就是极大似然。  4、LR为什么用sigmoid函数?  参考回答:1、Sigmoid函数将任意实数映射到区间(0, 1),在逻辑回归中,这个区间可以被解释为概率。这样,模型的输出可以被理解为样本属于正类的概率,符合逻辑回归的目标。2. Sigmoid函数的导数可以用Sigmoid函数本身表示,这使得梯度计算相对容易。在梯度下降等优化算法中,梯度的计算是很关键的,而Sigmoid函数的导数可以用数学上的简单形式来表示。3. Sigmoid函数的公式相对简单,便于处理和计算。  5、逻辑回归是一个分类算法,可以用来解决回归问题吗?  参考回答:逻辑回归是一个分类算法,通常用于解决分类问题,而不是回归问题。虽然名称中包含了"回归"一词,但实际上是因为它在数学形式上与线性回归有些相似,但用途和应用是不同的。逻辑回归的目标是预测一个样本属于某个类别的概率,输出结果是一个介于0和1之间的概率值。这样的输出适用于分类问题,例如判断电子邮件是否为垃圾邮件、疾病是否发生等。对于回归问题,目标是预测一个连续的数值输出。典型的回归算法包括线性回归、决策树回归、神经网络回归等。这些算法用于预测房价、销售额、温度等连续数值。虽然逻辑回归主要用于分类问题,但它也可以用于处理多类别分类问题,或者在一些情况下可以进行变种以适应回归问题,例如在逻辑回归的基础上进行拓展,但通常在解决回归问题时会选择专门的回归算法来获得更好的性能。  6、逻辑回归怎么做多分类?  参考回答:多分类问题一般将二分类推广到多分类的方式有三种,一对一,一对多,多对多。一对一:将N个类别两两配对,产生N(N-1)/2个二分类任务,测试阶段新样本同时交给所有的分类器,最终结果通过投票产生。一对多:每一次将一个例作为正例,其他的作为反例,训练N个分类器,测试时如果只有一个分类器预测为正类,则对应类别为最终结果,如果有多个,则一般选择置信度最大的。多对多:若干各类作为正类,若干个类作为反类。注意正反类必须特殊的设计。  7、线性回归用平方和损失、逻辑回归用logloss,为什么逻辑回归不用平方和损失?  参考回答:逻辑回归使用交叉熵损失(Log Loss)而不是平方和损失,主要是因为逻辑回归的目标函数和输出特性与平方和损失不太匹配。以下是一些原因解释为什么逻辑回归通常不使用平方和损失:     不适合概率预测: 逻辑回归的输出是一个介于0和1之间的概率值,而平方和损失在计算误差时会对较大的误差更加敏感。由于逻辑回归的输出范围限制在0到1之间,使用平方和损失可能会导致训练过程不稳定,不适合对概率预测进行建模。   非凸优化问题: 使用平方和损失的线性回归问题是一个凸优化问题,但将其应用于逻辑回归时,由于逻辑函数的非线性变换,损失函数会变成非凸的。这样的非凸优化问题可能会导致训练过程陷入局部最小值,并影响模型的性能。   不平衡类别: 在分类问题中,类别不平衡(即正负样本数量差异较大)是常见情况。平方和损失在这种情况下可能会导致模型偏向于预测数量较多的类别,而忽略数量较少的类别。   概率交叉熵的信息论解释: 交叉熵损失在信息论中有着明确的解释,与概率分布之间的差异有关,适用于逻辑回归的概率预测问题。      8、LR的使用场景,怎么引入的非线性?为什么要特征离散化?  参考回答:我们在使用逻辑回归的时候很少会把数据直接丢给LR来训练,我们一般会对特征进行离散化处理。离散后稀疏向量内积乘法运算速度更快,计算结果也方便存储,容易扩展。离散后的特征对异常值更具鲁棒性,如age>30为1否则为0,对于年龄为200的也不会对模型造成很大的干扰。其次LR属于广义线性模型,表达能力有限,经过离散化后,每个变量有单独的权重,这相当于引入了非线性,能够提升模型的表达能力,加大拟合。离散后特征可以进行特征交叉,提升表达能
点赞 9
评论 8
全部评论

相关推荐

emmm别问我为啥上一条帖子隔了两个月我才开始投简历和拿offer,因为我懒😰简单流程如下:周一凌晨改好的简历,然后到处乱投简历;周二接到了三维家的一面通知,临时抱佛脚的背了一些八股;周三上午一面下午通知第二天hr面;周四上午hr面下午拿offer,遂收手支线:在BOSS上顺手投了几个大厂,投字节的时候不小心投城客户端了,结果过了一天HR突然把我简历要走了,还问我能不能整客户端,我直接一口答应(脏面评警告😢)结果在周三下午的时候给我打电话,说前端有空缺实习岗,问我有没有兴趣,然后就跟我约了周四下午一面😰我都没咋准备啊,咩都不会啊😭结果周四下午面完,晚上打电话通知过一面了,赶紧把二面约在下周一下午,留点缓冲时间。逆大天了,我一半的问题都不会,他居然给我过了?运气未免有点好了😥现在正在恶补计网、网安、性能优化的东西(这三大板块我是几乎一点不会,一面几乎一点答不出来,加上我又没怎么背八股,这块被干烂了😵)心得体会与经验:1. 我giao怎么这么快就结束了,我还以为要找好久😨2. 大厂的面试问题真的和中厂小厂很大不同,比如在三维家我能自己吹水到vue的数据劫持、Proxy代理响应式之类的他们就觉得很不错了,但是在字节你但凡敢提到一下就会追问你细节了,一追问马脚就全漏出来了3. 有信心真的很重要,我感觉我能拿中厂offer最重要的就是吹水吹出自信来了,以至于三维家面试反问面试官有哪里还需要改进的时候,他就说很不错了解的很多😦4. 理解很重要,我从头到尾真没背过很多八股,不过有一些知识确实是敲过代码验证过,所以面试的时候能吹水吹得出来😇想了解面经啥的可以直接评论区问我,但我可能也说不全,因为我没有记录,而且今天摆了一天感觉记忆快清空了😵下面是故事时间:我暑假刚开始的时候才开始准备八股,印象很深那个时候连什么原型、事件循环、闭包这些名词都没听过,资料也不知道怎么找,就一直零零散散的准备,感觉也只有js稍微背了一下八股,其他很多时候都是靠完全理解和手写熟悉一些机制的,但这样做效率很低,反正准备了一个多星期半个月就开摆了😭结果一摆就摆到了开学,笔记是乱七八糟的,八股是忘光光的,简历是一直没改的,实习也是一直没投过的。直到上周日晚上偶然和师兄聊天,他突然问我“你怎么还不找实习”,那天晚上才幡然醒悟,是时候做点事情了😡然后就按照上面描述的来走了。其实我感觉我从头到尾都没背特别多八股,也没怎么找刷题资料啥的,早期就是翻尚硅谷或者黑马的入门视频从头学起,中期用面试鸭看了一点点题,主要是在学js机制和敲js代码,后期才发现了w3c的面经网站,然后在那里看着学(那个时候已经懒得敲了,因为有些问题与代码感觉不像是给找实习的看的,忒细了点😂)接下来继续准备字节二面吧,虽然几乎没啥可能可以通过,但是万一有奇迹呢?😍😍😍也祝大家能够早日拿到心仪的offer
我的offer呢😡:我已经预见10天后你会发,节孝子启动了
投递三维家等公司10个岗位
点赞 评论 收藏
分享
代码飞升:别这样贬低自己,降低预期,放平心态,跟昨天的自己比。做好自己,反而会效率更高心态更好,加油兄弟
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务