梯度下降如何并行化 使用随机梯度下降 在不同的机器上计算不同样本的梯度 然后再合并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
