一句话概括逻辑回归:逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法运用梯度下降来求解参数,以达到将数据分类的目的。(求解参数时常见的算法还有:随机梯度下降法,牛顿法,拟牛顿法等)
逻辑回归的优缺点:
优点:
缺点:
LR 和线性回归的区别:
损失函数:线性模型是平方损失函数,而逻辑回归则是其极大似然函数。
逻辑回归中为什么使用对数损失而不用平方损失:
逻辑回归如果使用平方损失(最小二乘法),其损失函数是非凸的,不容易求解,容易得到其局部最优解。 而如果使用极大似然,其目标函数就是对数似然函数,该损失函数是关于未知参数的高阶连续可导的凸函数,便于求其全局最优解。(这里所说的对数损失和极大似然是相同的)
LR和感知机的区别:
LR和感知机都是线性模型都可以用于解决二分类问题,但二者有两点不同:
逻辑回归在训练的过程当中,如果有很多的特征高度相关或者说有一个特征重复了很多遍,会造成怎样的影响
如果在损失函数最终收敛的情况下,其实就算有很多特征高度相关也不会影响分类器的效果。 但是对特征本身来说的话,假设只有一个特征,在不考虑采样的情况下,将它重复 N 遍。训练以后完以后,数据还是这么多,但是这个特征本身重复了 N 遍,实质上将原来的特征分成了 N 份,每一个特征都是原来特征权重值的N分之一。
逻辑回归是一种广义线性模型,它通过sigmoid函数将线性函数的结果进行映射,目标函数的取值空间从(-∞,+∞)映射到了(0,1),在进行分类时,我们可以设定一个阈值,当预测概率大于该阈值时判定为正例,小于该阈值时判定为负例。
逻辑回归推导:
为什么逻辑回归使用sigmoid函数而不使用单位阶跃函数?
单位阶跃函数:预测值大于0就判为正例,预测值小于0则判定为负例,预测值为临界值则可任意判别,但其不连续,不充分光滑,无法进行求解。
如何使用逻辑回归进行多分类?
二分类逻辑回归:激活函数为sigmoid,损失函数为交叉熵(对数似然损失logloss在二分类时可以简化为交叉熵损失函数)
多分类逻辑回归:激活函数为softmax,损失函数为logloss
LR可以⽤用核么?可以怎么⽤用?l1和l2正则项是啥?lr加l1还是l2好?加哪个可以⽤用核(加l2正则项,和svm类似,加l2正则项可以⽤用核⽅方便便处理理)
为什什么LR需要归⼀一化或者取对数,为什什么LR把特征离散化后效果更更好,为什什么把特征组合之后还能提升,反正这些基本都是增强了了特征的表达能⼒力力,或者说更更容易易线性可分吧
美团技术团队《Logistic Regression 模型简介》https://tech.meituan.com/intro_to_logistic_regression.html
SVM和logistic回归分别在什什么情况下使⽤用?https://www.zhihu.com/question/21704547
逻辑斯蒂回归能否解决⾮非线性分类问题?https://www.zhihu.com/question/29385169
在逻辑回归中添加多项式项构造多项式LR,可以提高模型的表达能力,从而对非线性问题进行分类(几乎可以构造任意形状的决策边界)
为什什么LR可以⽤用来做CTR预估?https://www.zhihu.com/question/23652394
naive bayes和logistic regression的区别http://m.blog.csdn.net/blog/muye5/19409615
离散化LR的好处;逻辑回归的特征处理,连续值、离散值,离散化连续特征的好处
关于sigmoid的由来也可已通过推导的方式得到
常见应用场景
分类场景(如用户画像中的标签预测,判断内容是否具有商业价值,判断点击作弊等
LR适用上述场景的原因
LR模型自身的特点具备了应用广泛性
模型易用:LR模型建模思路清晰,容易理解与掌握;
横向对比与联系
SVM:
SVM的损失函数?为什么要用Hinge Loss?
SVM和LR哪个更容易过拟合,当数据不平衡时SVM会发生什么情况?
kkt条件具体是什么?KKT限制条件
SMO(序列列最⼩小优化)来解决这个对偶问题。
核函数(哪个地⽅方引⼊入、画图解释⾼高维映射,⾼高斯核可以升到多少维,如何选择核函数)
加⼤大训练数据量量⼀一定能提⾼高SVM准确率吗?
可以做回归吗,怎么做
⽀持向量量机(SVM)是否适合⼤大规模数据?https://www.zhihu.com/question/19591450
SVM和逻辑斯特回归对同一样本A进⾏行行训练,如果某类中增加一些数据点,那么原来的决策边界分别会怎么变化?https://www.zhihu.com/question/30123068
各种机器器学习的应⽤用场景分别是什什么?例例如,k近邻,贝叶斯,决策树,svm,逻辑斯蒂回归和最大熵模型。https://www.zhihu.com/question/26726794
Linear SVM 和 LR 有什什么异同?https://www.zhihu.com/question/26768865
f(x)=sign(w∗⋅x+b∗)f(x)=sign(w∗⋅x+b∗)
maxw,bγˆ||w||maxw,bγ^||w||
s.t. yi(w⋅xi+b)≥γ i=1,2,…,Ns.t. yi(w⋅xi+b)≥γ i=1,2,…,N
,N,其中$γˆ$即表示超平面关于数据集的函数间隔,是超平面关于数据集中的样本点的函数间隔$γiˆ$的最小值因为函数间隔并不会影响最优化问题的解,所以原问题等价于,其中$γ^$即表示超平面关于数据集的函数间隔,是超平面关于数据集中的样本点的函数间隔$γi^$的最小值因为函数间隔并不会影响最优化问题的解,所以原问题等价于
min_{w,b} \frac{1}{2}{||w||^2}s.t. y_i(w\cdot x_i+b) - 1\geq 0 i=1,2,…,N$$对偶算法,但是上述使用间隔最大化方法求解分离超平面的方法计算效率并不高,所以人们通过引入拉格朗日乘子根据拉格朗日对偶性将问题转化为广义的拉格朗日极大极小问题,然后使用SMO等算法求解出模型的参数值
转化为对偶问题的好处
- 对偶问题往往更易求解:以前新来的要分类的样本首先根据ww和bb做一次线性运算,然后看求的结果是大于0还是小于0,来判断正例还是负例。现在有了αiαi,我们不需要求出ww,只需将新来的样本和训练数据中的所有样本做内积和即可。那有人会说,与前面所有的样本都做运算是不是太耗时了?其实不然,我们从KKT条件中得到,只有支持向量的αi>0αi>0,其他情况αi=0αi=0。因此,我们只需求新来的样本和支持向量的内积,然后运算即可。
- 自然地引入了核函数
进一步的为了使模型能够解决非线性分类问题,人们引入了核函数,那么核函数是什么,为什么能解决非线性问题?
首先我们的目的是使用一个线性分类方法来求解非线性分类问题,而用线性分类方法求解非线性分类问题分为两步:
个人理解是对输入数据做了一个映射操作(输入空间–>特征空间),使得原本线性不可分的样例点现在线性可分了,这样就可以直接使用SVM求解线性可分问题的方法来解决原本线性不可分的问题
拉格朗日对偶性的KKT条件
https://zhuanlan.zhihu.com/p/26514613
SMO算法是支持向量机学习的一种快速算法,其特点是不断的将原二次规划问题分解为只有两个变量的二次规划问题,并对子问题进行解析求解,直到所有变量满足KKT条件为止,这样通过启发式的方法得到原二次规划问题的最优解,因为子问题有解析解,所以每次计算子问题都很快,虽然计算子问题次数很多,但在总体上还是高效的
等价于合页损失函数
软间隔/线性支持向量机的原始问题可以等价于添加了正则化项的合页损失函数,即最小化以下目标函数
minw,b∑i=1N[1−yi(w⋅xi+b)]++λ||w||2minw,b∑i=1N[1−yi(w⋅xi+b)]++λ||w||2
[z]+=zifz>0[z]+=zifz>0
[z]+=0ifz≤0[z]+=0ifz≤0
线性支持向量机的原始最优化问题与上述目标函数的最优化问题是等价的
将支持向量机改进的聚类算法被称为支持向量聚类,当数据未被标记或者仅一些数据被标记时,支持向量聚类经常在工业应用中用作分类步骤的预处理。
树模型
决策树处理理连续值的⽅方法;
决策树基本模型介绍?决策树算法中缺失值怎么处理理?决策树算法在应⽤用中有什什么值得注意的地⽅方。
改变随机森林林的训练样本数据量量,是否会影响到随机森林林学习到的模型的复杂度
特征选取怎么选? 为什什么信息增益可以⽤用来选特征?
信息熵和基尼指数的关系(信息熵在x=1处一阶泰勒勒展开就是基尼指数)
XGBoost进行特征选择的原理?
14. xgboost里面的lambdarank的损失函数是什么?
15. xgboost在什么地方做的剪枝,怎么做的?
16. xgboost如何分布式?特征分布式和数据分布式? 各有什么存在的问题?
17. lightgbm和xgboost有什么区别?他们的loss一样么? 算法层面有什么区别?
lightgbm的特性以及学习函数;
adaboost如何并行计算
随机森林怎么调参?树的深度一般是多少?怎么来决定树的深度。。。
随机森林会过拟合吗?加深树的深度会过拟合吗?为什么?
gbdt,xgboost,lgbm的区别(阿里,头条)
参考之前整理过的帖子:https://www.jianshu.com/p/f73a80c22198
xgboost在什么地方做的剪枝,怎么做的?xgb中l1正则怎么用的
树模型对连续型、离散型特征有一套统一的理论,是什么?
既然GBDT处理onehot属性时存在问题,为什么你们还要这么做
stacking blending区别
GBDT为什么拟合负梯度不直接拟合残差(在凸函数优化问题中,拟合梯度的负方向就能找到最小值,然后再考虑到过拟合的问题,建树的时候也不是完美的拟合梯度的负方向,而是有一个步长。)
GBDT做回归的整个流程是怎么样的(假如现在有一堆数据,算法是怎么做回归的),怎么建树?怎么分裂?怎么防止过拟合?怎么剪枝?
做分类呢?有什么不同?调参会调整哪些参数?某些参数(叶节点权重阈值,树深度等)调大或调小对模型有什么影响?
从三个方面来分解讲解,其一是boosting,其二是梯度上升,其三则是决策树
关于这三点,个人感觉从加法模型的前向分步算法来理解比较好,首先前向分步算法提供了一种学习加法模型的普遍性方法,不同形式的基函数、不同形式的损失函数都可以用这种普遍性方法去求出加法模型的最优化参数;而对于boosting而言,基本思想是训练一系列的弱学习器,每一个学习器修正前一个基学习器的错误,最终得到的一个整体的学习器就是我们的集成模型,而我们在每一轮训练一个基学习器并将其累加到当前的集成学习器的过程刚好符合前向分步算法的思想;如果将其形式化为加法模型地表示形式就是一系列基学习器加权和的形式,而我们的目的是要求得最小化训练损失函数的基学习器以及该学习器的权重值;
手写k-means的伪代码(就6⾏);kmeans 代码;
如何优化kmeans算法
Kmeans 算法 K 怎么设置、适⽤用什什么样数据集、怎么评价
em 与 kmeans 的关系;⽤用 EM 算法推导解释 Kmeans。
K-means起始点http://www.cnki.com.cn/Article/CJFDTotal-DNZS200832067.htm
K-means 中我想聚成100类 结果发现只能聚成98类,为什么
层次聚类的话,你又如何判断聚成多少类合适?
K-means的K怎么选取,聚类中心怎么初始化比较好。
DBSCAN原理和算法伪代码,与kmeans,OPTICS区别
kmeans 时间复杂度和空间复杂度