Python实现逻辑回归与梯度下降策略
Posted on
浅谈《线性回归》 与 《逻辑回归》
线性回归
- 在线性回归的算法推导中,根据得到的模型与真实数据之间存在的偏差,我们称为误差值。
- 似然函数
- 对数变换后,越大越好,越接近目标值
- 该函数由乘法将为加减之后得到最小二乘法,也叫目标函数
- 对目标函数求偏导
- 我们给一堆数据给机器,告诉他以目标函数为标准来预测结果,但是目标函数不能直接求解
- 我们引入梯度下降策略
- 有三种方法
- 批量梯度下降:慢,但是可以得到最优解
- 小批量梯度下降:最实用,且快
- 随机梯度下降:快,但是不一定会朝着收敛的方向
- 学习率:会对结果产生巨大的影响,一般选择小一些,迭代会慢一些
- 有三种方法
- 似然函数
- 我们认为这个误差值,必定是独立并且具有相同分布,服从均值为0,方差 $\theta_2$ 的高斯分布
- 独立和同分布将是我们后面数据分析经常遇到的特点
- 使用的评估方法:评估项\mathbb{R},1减去残差平方和和类似方差值,其中残差平方和指的是
- 预测值和真实值之间的差异
- 残差平方和的值越小,R方越接近1,则说明你的模型越好
逻辑回归
- 最牛逼的二分类算法:边策的边界可以是 —》非线性的
- sigmoid函数,自变量的取值为任意实数的值域为[0, 1].
我们在线性回归中可以得到一个预测值,再将该值映射到sigmoid函数中,这样就完成了由值到概率的转换,也就是分类任务
顺便提一下混淆矩阵:Confusion matrix
大部分博客都把问题说的晦涩难懂。其实可以这样理解,例如本来要预测为good–>T的数据,被预测为bad–>F;要预测为bad–T的数据被预测为good–F,于是混淆矩阵就是把预测正确和错误的四个结果用一个表来表示出来。T + T = (2T + 2F)
什么过采样,或者说什么是上采样?
就是利用SMOTE算法,选择采样少的数据,用欧式距离计算出每个点的距离,以此来计算出k近邻值,然后在k近邻值附近随机散落达到的点的集合,就可以向上增加采到数量相似的样本。
- 什么欧式距离?是一个通常采用的距离定义,它是在m维空间中两个点之间的真实距离。在二维和三维空间中的欧氏距离的就是两点之间的距离