逻辑回归
Logistic/sigmoid函数
损失函数
梯度下降算法的参数迭代公式
逻辑回归面试题
什么是逻辑回归?
逻辑回归用来做分类,线性回归是Y=wX+b,将Y的结果带入到sigmoid函数中,就可以得到[0,1]之间的数,可以将其看成概率,再设置一个阈值,比如0.5,大于0.5的是正样本,小于0.5的是负样本。
什么是Sigmoid函数?
无论x取什么值,结果都在[0,1]内
损失函数是什么?
逻辑回归模型为什么用自然对数函数(ln)来作为损失函数?
因为逻辑回归模型中用到了sigmoid函数,sigmoid函数中有e^n, ln(e^n)=n
可以进行多分类吗?
可以
y={0,1,2,…,n},总共有n+1个类别
思路:
首先将问题转换为二分类问题,即y=0是一类,y={1,2,…,n}是另一类,求出这两类的概率;
再把y=1看成一类,y={0,2,…,n}是另一类,求出这两类的概率;
以此类推;
最后找出概率最高的那个类别,就是样本所属的类别。
总之,以二分类来一次划分,求出概率最高的类别
逻辑回归有什么优点?
- 输出概率,不是0,1
- 可解释性强
- 训练速度快
逻辑回归的目标函数中增大L1正则化会是什么结果?
所有的参数w都会变成0
逻辑回归的本质:
极大似然估计
逻辑回归的激活函数:
sigmoid函数
逻辑回归的损失函数:
交叉熵损失函数
为什么要使用交叉熵函数作为损失函数,而不是平方误差函数?
https://blog.csdn.net/syyyy712/article/details/78252722
https://blog.csdn.net/qq_24568487/article/details/80594944
https://blog.csdn.net/ddydavie/article/details/82668141
-
使用交叉熵函数 会克服 平方误差函数 更新权重过慢 的缺点,因为激活函数是sigmoid,
交叉熵损失函数的梯度里不包括 sigmoid函数的导数
而使用 平方误差函数 时,其梯度里包括sigmoid函数的导数,会使梯度下降缓慢
-
平方误差函数的图像是非凸的 存在局部最优
-
交叉熵损失函数是凸函数
详细理解:
因为使用平方误差函数的话, 损失函数会有很多局部最优点,为什么呢?
使用平方误差函数时,w和b的偏导数与损失函数的导数有关,而损失函数中使用了sigmoid函数,就有导数接近0的时候,就会导致w和b的偏导数很小,梯度很小,w和b的更新幅度小,训练缓慢,会产生局部最优点。
而使用交叉熵损失函数时,w和b的偏导数与损失函数的导数无关,与 预测值和真实值的差值 有关,也就是与误差有关。当误差越大时,w和b的偏导数越大,梯度越大,w和b更新就越快,训练的速度就越快
逻辑回归相比于线性回归有什么异同?
不同点:
逻辑回归解决分类问题, 线性回归解决回归问题
逻辑回归的因变量是离散的,线性回归的因变量是连续的
相同点:
二者都使用了极大似然函数对训练文本进行建模
求解参数时,都可以使用梯度下降法
为什么逻辑回归需要取对数?
因为概率的乘积会出现数值下溢出,因此取对数,转换为加法
LR如何解决低维不可分?
特征映射,通过特征变化的方式将低维空间映射到高维空间,而在低维空间线性不可以分的数据,在高维空间线性可分的概率会增大,
具体方法:核函数(高斯核函数,多项式核函数)
关于逻辑回归,连续特征离散化的好处???
在工业界,很少直接将连续值作为特征喂给逻辑回归模型,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点:
- 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展
- 离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰。
- 逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合。
- 离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力。
- 特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问。
大概的理解:1)计算简单;2)简化模型;3)增强模型的泛化能力,不易受噪声的影响
来源:https://blog.csdn.net/qq_14993591/article/details/100823188