机器学习之回归(线性回归+逻辑回归)
开学第七周,开启机器学习新篇章。
一.关于机器学习
机器学习是人工智能的核心分支,本质是通过让计算机通过数据学习规律实现自主决策、预测或模式识别。核心逻辑就是给它一串数据,通过特定的模型训练让它找到数据的内在规律对我们想要解决的问题进行一个预测。在寻找适合的模型中,我们要采取各种算法提高其准确度。
下面是关于我在搜集资料后拟写的一个思维导图

二.回归
回归的本质是拟合一条“ 曲线 / 平面 ”,并尽可能让所有的数据都在这条线上,也就是误差最小,以此提高预测的精确度和可靠性。
回归流程如下

主包刚开始有点没能理解训练集和测试集的一些概念,这里做一个小小的介绍。
1)训练集与测试集
训练集和测试集作为存放数据的集合都有特征和标签,这里和平时理解的字面意义上的特征和标签不一样,我们可以分别把其简单理解为“输入”和“输出”。
特征是模型的输入信息,通常描绘了数据的各属性和维度。比如在预估房价时,房屋的面积、楼层还有地段等都是特征;在识别垃圾邮件时,发件人、邮件内容等也是特征。
标签是模型的输出目标,也就是想要得到数据的结果。可大致分为分类和回归两种类型,前者的标签指离散类别,比如是垃圾邮件/正常邮件;后者的标签则指连续的数值,比如预测的房价、销量等。
训练集作用是让模型不断学习并挖掘数据的内在规律,而测试集的作用则是用训练过的模型来对数据的结果进行一个预估,与真实值进行对比看这个模型准不准。他们俩的区别在于是否参与过模型训练。
(除此之外在实践中还有验证集,用于调节各项参数,防止过度拟合,帮助最佳模型的选择)
2)线性回归
线性回归是一种用于预测连续数值的统计方法,通过找到自变量(特征)与因变量(目标)之间的线性关系进行预测。基本公式为
y = w₁x₁ + w₂x₂ + ... + wₙxₙ + b
其中,y为预测目标;x为特征变量;w为系数(权重);b为截距
关于线性回归,重要的核心概念有三个分别是损失函数、梯度下降、评估指标。
a.损失函数
损失函数是核心的 “误差衡量工具”,它量化了模型预测结果与真实值之间的差异,指导模型参数的优化方向。为什么它是核心呢,要看一个线性回归模型误差大不大其实是有很多指标的,除了直观的可视化图像之外也需要有量化的数据来计算到底“损失”了多少。
b.梯度下降算法(GD)
通过逐步降低损失函数,找到最优解。是线性回归中用来最小化损失函数的核心优化算法。批量梯度下降(BGD)是最基础的形式,每次迭代都使用全部训练样本计算梯度。
(1)BGD
- 计算损失函数每个参数的梯度/偏导,更新参数
- 每次更新步长由学习率决定(过大会导致震荡不收敛,过小会导致收敛过慢)

更新公式:



其中 θ 是模型参数,η 是学习率,∇θJ(θ) 是损失函数 J(θ) 在全部样本上的梯度。
优点是梯度估计准确,收敛稳定,能保证朝全局最优方向前进;但如果训练集数据过于庞大,会导致计算量大,速度也慢——针对这个进行优化就有了随机梯度下降算法(SGD)。
(2)SGD
与BGD不同的是,SGD在每次迭代时只随机选择部分训练样本计算梯度并更新参数。
更新公式:



优点是计算速度快,大数据集适用,并且随机性也有助于跳出局部最优解;但会引入噪声,更新方向也不稳定,收敛过程会产生较大震荡,难以精确收敛——针对此问题又优化引进动量法(Momentum)。
(3)Momentum
在更新参数时,不仅考虑当前梯度,还积累之前的梯度方向。
更新公式:



它可以提高速度并有效抑制震荡,但仍需要手动调整学习率——针对这个问题优化为自适应学习算法。
(4)AdaGrad和RMSProp
为每个参数位数一个独立的学习率,对出现频率低的参数使用较大的学习率,频率高的则使用较小的学习率。RMSProp则是对前者学习率过早衰减的问题进行优化。


(5)Adam
动量+自适应学习(Momentum+RMSProp)是目前最流行的优化算法之一。
利用动量平滑路径,自适应调整每个参数的学习率。

收敛速度快,对超参数不敏感,在大多数深度学习任务中表现出色,是默认首选优化器。
c.评估指标
决定系数
(最核心指标),取值为[0,1],越接近1表示拟合效果越好

(适用无明显异常值时)
均方误差(Mean Squared Error, MSE):

(对大误差更敏感)
均方根误差(Root Mean Squared Error, RMSE):

(同样适用于无明显异常值时)
平均绝对误差(Mean Absolute Error, MAE):

(对异常值更鲁棒,不进行平方操作,故当存在异常值时使用更为恰当)
除此之外,还有
平均绝对百分比误差(MAPE):

(衡量预测值相对真实值的平均百分比误差,适合评估相对偏差的场景)
均方对数误差(MSLE):

(目标值范围大,用对数变换可以缓解大值对误差的影响)
3)逻辑回归
逻辑回归是一种用于分类的统计方法,虽然名字里有 “回归”,但它本质上是通过线性模型结合Sigmoid 函数,将预测结果映射到 [0,1] 区间,从而实现对二分类问题的概率预测。其基本公式为:

是预测为正类的概率,z是线性组合的输出,
() Sigmoid 激活函数,将线性输出压缩到概率区间
a.损失函数
二元交叉熵损失(Binary Cross-Entropy):

多分类交叉熵损失(Categorical Cross-Entropy):

b.梯度下降算法(GD)
计算通线性回归,这里不做详细说明。
c.评估指标
逻辑回归作为分类模型,常用一下指标来评估性能:
混淆矩阵
| 预测为正类 | 预测为负类 | |
| 真实为正类 | 真阳性(TP) | 假阴性(FN) |
| 真实为负类 | 假阳性(FP) | 真阴性(TN) |
准确率Accuracy

(在数据不平衡的情况下极具误导性,仅适用于数据集分布相对平衡时)
精确率Precision

(所有预测为正类中,真正是正的比例,适用于数据不平衡/避免误报时)
召回率Recall

(所有真实为正类中,预测为正的比例,适用于数据不平衡/避免漏报时)
F1分数
(精确率和召回率的调和平均数,为二者的平衡指标,使用范围广不管数据平不平衡)
AUC
ROC曲线下的面积,取值范围为[0,1]。roc横轴为假阳性率:FP/(FP+TN),纵轴为真阳性率/召回率:TP/(TP+FN)。auc代表模型区分正负样本的能力,越接近1分类能力越强,对数据不平衡不敏感,是评估分类模型的重要指标之一。