算法面试基础:LR(逻辑回归)
- 逻辑回归
- logistic分布函数和密度函数,手绘大概的图像
- 梯度下降如何并行化
- 使用随机梯度下降 在不同的机器上计算不同样本的梯度 然后再合并
- LR明明是分类模型为什么叫回归
- 有一个几率的概念,log(p(y=1)/p(y=0))的比值是与x是线性关系
- Log(p(y=1)/p(y=0))=log(e^x)=wx
- 为什么LR可以用来做CTR预估
- 点击作为正样本,没有点击作为负样本
- 方便并行
- 满足什么样条件的数据用LR最好
- 离散特征
- 特征独立
LR为什么使用sigmoid函数作为激活函数?其他函数不行吗
- 利用几率odds的意义在哪
- 任意阶可导的优秀性质
- 由预测0/1的类别扩展到了预测0-1的概率值
- 直接对分类模型进行建模,前提假设为非常弱的指定类别上自变量的条件分布满足高斯
- Sigmoid函数到底起了什么作用
- 数据规约:[0,1]
- 线性回归在全量数据上的敏感度一致,sigmoid在分界点0.5处更加敏感
- sigmoid在逻辑回归的参数更新中也不起影响,避免了更新速度不稳定的问题
- LR为什么要使用极大似然函数,交互熵作为损失函数?那为什么不选平方损失函数的呢
- 首先,是一个分类问题,使用交叉熵判断比较合适,判断是否类别相同,而不关心具体类别编号之前的距离
- 更新速度只与真实的x和y相关,与激活函数无关,更新平稳
- 比如mse就会导致更新速度与激活函数sigmoid挂钩,而sigmoid函数在定义域内的梯度大小都比较小(0.25>x),不利于快速更新
- mse下的lr损失函数非凸,难以得到解析解
- 首先,是一个分类问题,使用交叉熵判断比较合适,判断是否类别相同,而不关心具体类别编号之前的距离
- LR中若标签为+1和-1,损失函数如何推导?
- 如果有很多的特征高度相关或者说有一个特征重复了100遍,会造成怎样的影响/为什么要避免共线性
- 如果在损失函数最终收敛的情况下,其实就算有很多特征高度相关也不会影响分类器的效果
- 每一个特征都是原来特征权重值的百分之一,线性可能解释性优点也消失了
- 增加训练收敛的难度及耗时,有限次数下可能共线性变量无法收敛,系数估计变得不可靠
- 泛化能力变差,训练是两列特征可能会共线性,当线上数据加入噪声后共线性消失,效果可能变差
- LR可以用核么?可以怎么用
- 可以,加l2正则项后可用
- LR中的L1/L2正则项是啥
- L1正则是绝对值项之和
- L2正则式平方项之和开平方
- L1是拉普拉斯分布,使得特征稀疏
- L2是高斯分布,避免过拟合,约束参数接近0,但不为0
- 当外点很多的时候,选择L1,L1有特征选择的功能,会忽略考虑外点的特征,这样使得模型不会过拟合,不会去拟合外点。
- lr加l1还是l2好
- L1存在不可导的问题该如何结果?遇到函数不可导应该如何处理?有哪些办法
- 看情况,想要模型稀疏,用L1,否则用L2
- 正则化是依据什么理论实现模型优化
- 结构风险最小化:在经验风险最小化的基础上(也就是训练误差最小化),尽可能采用简单的模型,以此提高泛化预测精度。
- 结构风险最小化,使得模型简单
- LR可以用来处理非线性问题么
- 特征交叉,类似fm
- 核逻辑回归,类似svm
- 线性变换+非线性激活,类似neural network
- 为什么LR需要归一化或者取对数
- 模型中对数据对处理一般都有一个标答是提升数据表达能力,也就是使数据含有的可分信息量更大
- 工程角度:
- 加速收敛
- 提高计算效率
- 理论角度:
- 梯度下降过程稳定
- 使得数据在某类上更服从高斯分布,满足前提假设
- 为什么LR把特征离散化后效果更好?离散化的好处有哪些
- 离散变量的计算相对于连续变量更快
- 数据的鲁棒性更好,不会因为无意义的连续值变动导致异常因素的影响
- 离散后结合正则化可以进行特征筛选,更好防止过拟合
- 原来的单变量可扩展到n个离散变量,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合
- 逻辑回归估计参数时的目标函数逻辑回归的值表示概率吗
- lr的output是彼此之间相对谁的可能性更高,而不是概率,概率是事情发生的可能,lr的output不代表可能
- LR梯度下降方法
- 随机梯度下降
- 局部最优解,可跳出鞍点
- 计算快
- 批梯度下降
- 全局最优解
- 计算量大
- mini批梯度下降
- 综合以上两种方法
- 除此之外,比如ada和冲量梯度下降法会对下降的速率速度进行控制,也会对不同更新速度的参数进行控制,等等,多用于深度学习中
- LR的优缺点
- 优点
- 简单,易部署,训练速度快
- 模型下限较高
- 可解释性强
- 缺点
- 只能线性可分
- 数据不平衡需要人为处理,weight_class
- 模型上限较低
- 优点
- 除了做分类,你还会用LR做什么
- 特征筛选,特征的系数决定该特征的重要性
- 谈一下sklearn.linear_model.LogisticRegression中的penalty和solver的选择
- penalty是正则化,solver是函数优化方法
- penalty包含l1和l2两种,solver包含坐标轴下降、牛顿、随机梯度下降等
- 牛顿法,拟牛顿法和随机梯度下降都不能使用l1,因为他们都需要损失函数的一阶二阶导数,而坐标轴下降法不限制这些,l1和l2都可行。
- l1和l2选择参考上面讲的正则化部分
- 随机梯度下降在数据较少的时候最好别用,但是速度比较快。默认的是坐标轴下降法
- penalty{‘l1’, ‘l2’, ‘elasticnet’, ‘none’}, default=’l2’
- solver{‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’}, default=’lbfgs’
- 谈一下sklearn.linear_model.LogisticRegression中对多分类是怎么处理的
- 首先,决定是否为多分类的参数是multi_class
- 在二分类的时候,multi和ovr和auto都是一样的
- 在真正执行multi的时候,会通过LabelEncoder把目标值y离散化,不停的选择两类去做ovr的计算直到取完所有情况
- multi_class{‘auto’, ‘ovr’, ‘multinomial’}, default=’auto’
- multi_class:分类方法参数选择,‘ovr’和‘multinomial’两个值可以选择,默认值为‘ovr’,如果分类问题是二分类问题,那么这两个参数的效果是一样的,主要体现在多分类问题上。对于多分类问题,"ovr"分类方法是:针对每一类别进行判断时,都会把这个分类问题简化为是/非两类问题;而‘multinomial’是从众多类别中选出两个类别,对这两个类别进行判断,待判断完成后,再从剩下的类别中再选出两类进行判断,直至最后判断完成。
- 总结
- 逻辑回归对样本噪声是鲁棒对,SVM对噪声比较敏感,而logistic回归对噪声不是很敏感,是因为如果噪声点落在了支持向量上,将会直接影响判别面的方程。而logistic回归通过最大似然求解模型参数,将会弱化噪声的影响
- 逻辑回归不需要特征的条件独立,但是不能共线性,需要核线性回归一样,做共线性检验
- 逻辑回归本质是线性模型,只能解决线性相关的问题,非线性相关用核或者svm等
- 逻辑回归假设观测样本中该特征在正负类中出现结果服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的
参考链接:https://github.com/sladesha/Reflection_Summary/blob/master/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/%E9%80%BB%E8%BE%91%E5%9B%9E%E5%BD%92/lr.md#L164
算法面试基础:LR(逻辑回归)相关推荐
- 神经网络基础及逻辑回归实现
神经网络基础及逻辑回归实现 1. Logistic回归 1.1 Logistic回归 逻辑回归是一个主要用于二分分类类的算法.逻辑回归是给定一个x , 输出一个该样本属于1对应类别的预测概率=P( ...
- Coursera吴恩达《神经网络与深度学习》课程笔记(2)-- 神经网络基础之逻辑回归...
转至:https://blog.csdn.net/red_stone1/article/details/77851177 上节课我们主要对深度学习(Deep Learning)的概念做了简要的概述.我 ...
- Coursera吴恩达《神经网络与深度学习》课程笔记(2)-- 神经网络基础之逻辑回归
红色石头的个人网站:redstonewill.com 上节课我们主要对深度学习(Deep Learning)的概念做了简要的概述.我们先从房价预测的例子出发,建立了标准的神经网络(Neural Net ...
- 【机器学习算法笔记系列】逻辑回归(LR)算法详解和实战
逻辑回归(LR)算法概述 逻辑回归(Logistic Regression)是用于处理因变量为分类变量的回归问题,常见的是二分类或二项分布问题,也可以处理多分类问题,它实际上是属于一种分类方法. 逻辑 ...
- 【机器学习基础】逻辑回归 + GBDT模型融合实战!
作者:吴忠强,东北大学,Datawhale成员 一.GBDT+LR简介 协同过滤和矩阵分解存在的劣势就是仅利用了用户与物品相互行为信息进行推荐, 忽视了用户自身特征, 物品自身特征以及上下文信息等,导 ...
- 机器学习算法(四)逻辑回归理论与python实现+经典示例(从疝气病预测病马的死亡率)
学习笔记更新 什么是逻辑回归? 简要介绍 逻辑回归是用来解决线性回归问题的,它将线性回归得到的结果通过逻辑函数映射到[0,1]之间,因此称逻辑回归.逻辑回归模型主要用于解决二分类问题,是一个分 ...
- 逻辑回归算法c语言_逻辑回归算法背后的数学
逻辑回归算法背后的数学 看完深蓝学院的机器学习公开课后,对于逻辑回归部分,打算写篇学习笔记记录总结一下,也和大家共同分享. 1 基本思能 逻辑回归(Logistic Regression)和线性回归( ...
- r语言 C4.5 剪枝是用什么算法_决策树,逻辑回归,PCA算法面经
目录 决策树 简述决策树原理? 为什么要对决策树进行减枝?如何进行减枝? 简述决策树的生成策略 PCA 简述主成分分析PCA工作原理,以及PCA的优缺点? PCA中有第一主成分.第二主成分,它们分别是 ...
- 机器学习算法总结--线性回归和逻辑回归
1. 线性回归 简述 在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析.这种函数是一个或多个称为回 ...
- 逻辑回归二分类算法python_多分类逻辑回归 (Multinomial Logistic Regression)
前言 分类从结果的数量上可以简单的划分为: 二分类(Binary Classification) 多分类(Multinomial Classification). 其中二分类是最常见且使用最多的分类场 ...
最新文章
- 功能强大的 C++ redis 客户端库增加至 acl 项目中
- 局域网通知系统(消息群发)
- mosquitto 使用时出现的一些问题及其解决办法
- 数据结构-数组模拟队列-环形实现(JAVA)
- Go学习笔记—Channel通道
- 类固醇上的Java:5种超级有用的JIT优化技术
- Grid game CodeForces - 1104C 放格子|思维|找规律
- 大屏难看怎么办?这份大屏制作教程请收好
- 类的初始化和实例的初始化
- OpenStack SFC 深入剖析
- mysql 超时连接错误码_mysql链接超时错误
- 随机森林(Random Forest)通俗教程
- 将Python对象转换成字典
- 31个工作习惯(转)
- 计算机系统基础学习报告(一)
- 即时通讯开发资料分享
- Flask开发 导入flask_uploads包时提示“IMPORTERROR: CANNOT IMPORT NAME ‘SECURE_FILENAME‘ FROM ‘WERKZEUG‘“
- 怎么打开计算机开机启动菜单,计算机怎么添加多系统启动菜单?电脑添加双系统启动菜单的方法...
- html中a做成按钮,css如何将超链接a设计成按钮样式
- 关于复制粘贴快捷键失效问题的解决方法