线性回归(LR)
线性模型
给定数据集,试图从数据集中学习得到一个线性模型,模型尽可能准确地反映和的对应关系。线性模型可以表示为:
损失函数
损失函数是对模型质量的度量方式,能够量化目标实际值与预测值之间的差距。例如,平方误差可以定义为:
模型训练的目标是寻找一组参数,使得这组参数最小化所有训练样本上的总损失,即:
随机梯度下降
随机梯度下降是一种能够更新模型以提高模型预测质量的方法。随机梯度下降通过不断地在损失函数递减的方向上更新参数来降低误差。更新过程可表示为:
pytorch实现
from torch import nn
net = nn.Sequential(nn.Linear(input_dim, output_dim))
随机森林(RF)
集成学习
对于训练数据,集成学习通过训练一系列个体学习器,并通过一定的结合策略将他们组合起来,最终得到一个强学习器。
graph LR;
个体学习器c1-->结合策略
个体学习器c2-->结合策略
个体学习器c3-->结合策略
结合策略-->强学习器
个体学习器
个体学习器是相对于集成学习的概念,代表单个学习器,例如:决策树、逻辑回归、朴素贝叶斯等。集成学习则代表多个学习器的结合。
集成学习的核心
-
个体学习器的要求
- 个体学习器需要达到一定的准确性
- 个体学习器要存在差异性
-
强学习器的构建方式
- 并行组合方式:Bagging
- 串行组合方式:Boosting
Bagging
Bagging在Bootstrap Sampling基础上构建,在有放回的随机采样下重复采样 n 次,得到 n 个采样集。基于每个采样集训练出一个基学习器,然后将基学习器结合得到强学习器。
graph LR;
结合策略-->有放回的随机采样
有放回的随机采样-->训练样本D1
有放回的随机采样-->训练样本D2
有放回的随机采样-->训练样本D3
训练样本D1-->学习器c1
训练样本D2-->学习器c2
训练样本D3-->学习器c3
学习器c1-->强学习器
学习器c3-->强学习器
学习器c2-->强学习器
随机森林算法
随机森林是一种基于树模型 Bagging 的优化版本。其核心思想依旧是 Bagging,但是做了一些独特的改进—使用了 CART 决策树作为基学习器。具体过程如下:
-
输入为样本集
-
对于:
- 有放回地随机采样,采集 m 个样本,得到样本集
- 根据样本集训练决策树模型
-
根据 T 个基模型回归得到最终预测值
梯度提升决策树(GBDT)
Boosting
Boosting方法训练基学习器时采用串行的方式,各个基学习器之间存在依赖。其思路是将基学习器逐层叠加,最终根据各层学习器的结果加权得到强学习器。
graph TD;
训练样本D1-->学习器c1
训练样本D2-->学习器c2
训练样本D3-->学习器c3
学习器c1-->训练样本D2
学习器c2-->训练样本D3
学习器c1-->强学习器
学习器c2-->强学习器
学习器c3-->强学习器
梯度提升决策树算法
梯度提升决策树是一种迭代的决策树算法。它通过构造一组弱的学习器(树),并把多颗决策树的结果累加起来作为最终的预测输出。梯度提升决策树算法流程如下: