【算法面经】《百面机器学习 算法工程师带你去面试》笔记

时间:2024-10-26 07:17:00

特征工程

1.

结构化数据:表

非结构化数据:图像、音频、视频

2.归一化:梯度下降求解更快

Min-max归一化:(x-min)/(max-min)

z-score归一化:(x-u)/σ

3.类别型特征

序号编码:保留相对大小关系

独热编码:需要配合特征选择或者使用稀疏向量节省空间

二进制编码:000,001,010

4.高维数据:

距离计算困难

间接引起模型复杂度上升

需要配合特征选择

5.组合特征:通过决策树方法构建

6.图像数据不足:通过扩充、缩放、变换扩展数据集

(1)裁切、旋转

(2)亮度、清晰度、锐度对比度变换

(3)添加椒盐噪声、高斯噪声

(4)RGB颜色变换

7.

过拟合:

正则化、Dropout、扩充数据集、缩减模型、预训练fine-tune、集成学习

欠拟合:

减小正则化系数、增加模型复杂度、增加数据属性

8.

准确率=T/(T+F)

P-R曲线:变化更剧烈,局限于特定的数据集

ROC曲线:TPR=TP/(TP+FN);FPR=FP/(FP+TN),更客观

RMSE比MAPE更易受离群点影响。

距离:满足三角不等式、对称性、正定性

余弦距离:方向上的相对距离

余弦相似度=1-余弦距离

9.训练集和验证集划分:留出法(37分),k折交叉法,自助法(有放回n次抽样,36.8%)

10.参数调优:随机搜索、启发式算法、网格搜索、贝叶斯寻优

SVM

(1) 线性可分的点在分类超平面上的投影一定不可分。

(2) 若不存在两点共位置,比存在一组参数使得SVM模型的训练误差为0,但不一定满足SVM条件。

(3)增加了松弛变量的SVM不一定训练误差为0,但这也不一定是模型追求的目标,因为正则化项也在优化目标之中。

逻辑回归

分类模型,可以多分类,梯度下降的方法进行优化。

决策树

ID3

C4.5

CART

缺失值敏感

????‍

形态

多叉树

多叉树

二叉树

功能

分类

分类

分类、回归

特征复用

????‍

分类依据

信息增益

信息增益率

Gini系数

欠拟合风险

过拟合风险

训练时间

预剪枝

后剪枝

含缺失值的样本归入所有子结点

降维——PCA、LDA

线性、无监督

最大化投影点之间的方差

最小化点到投影面的距离之和

目标:去噪,提升信噪比

有监督

最大化广义瑞利商(Fisher准则):类间散度尽可能大、类内散度尽可能小

&LDA

同:通过求解矩阵的特征向量作为投影方向

异:有无监督。去噪/区分不同的信号

非监督学习

数据聚类、特征变量关联

(1)K-Means聚类:随机K个簇的中心à把剩余的点归类à更新中心点à……

使用欧氏距离:必收敛。

K的选取:Gap statistcs(蒙特卡洛模拟),手肘法

改进:ISODATA、K-Means++

(2)GMM聚类:EM算法求解:假设每簇数据遵循正态分布(椭圆状)、生成式模型

(3)聚类簇的定义:中心定义、密度定义、概念定义、连通定义

(4)聚类是否有必要:霍普金斯统计量:随机点到样本点的距离

       随机:接近0.5

       不随机:接近1

  1. 聚类质量

内部:DB(↓)、Dunn(↑)

外部:Jaccard指数(↑)、Rand指数(↑)、FM指数(↑)

概率图模型

CRF、HMM、最大熵模型、朴素贝叶斯模型、主题模型

1.生成or判别?

生成式:建模P(x,y):朴素贝叶斯、GMM、HMM

判别式:建模P(x|y)

2.

MM

↓含有隐变量

HMM

生成式模型

↓去除:观测变量相互独立假设

最大熵HMM

  1. 存在标注偏置问题:模型倾向于下一状态较多的状态
  2. 生成式模型

↓转移概率矩阵全局归一化

CRF

判别式模型

优化

二分类

0/1

交叉熵

Hinge-loss

SVM

逻辑损失

逻辑回归

回归

Mse

Mae

异常点鲁棒性略好

Huber

2.优化器

一阶导数信息

BGD

SGD

Mini-BGD

快+稳定

Adam

过鞍点和谷点

Adagard

过鞍点

SGD with momentum

过谷点

二阶导数信息:低维快,高维容易陷入鞍点

牛顿法

拟牛顿法

对Hesse矩阵的逆矩阵进行近似

Momentum:鞍点

惯性:谷点

正则化

本质:定义解空间约束,防止过拟合

L1

方形约束

稀疏解,使得解中的0元素更多

L2

圆形约束

使得解中的元素更接近解

采样

简化数据分布,改变样本集分布

均匀分布

均匀同余法:假随机、种子为初始被除数、至多有除数个真随机数

连续分布

对均匀分布的CDF函数进行变换后进行逆采样

离散有限分布

轮盘赌方法

  1. 不平衡样本集

欠采样:针对多数据的样本集

过采样:针对少数据的样本集,SMOTE法合成新样本

前向神经网络

多层感知机、自编码器、卷积神经网络

(1)

单层感知机劣于多层感知机:表达异或逻辑

多层感知机:层数<=2劣于层数>2:表达非线性逻辑

  1. 层内全连接,不允许跨层、层内连接
  2. 使用sigmond函数激活

激活函数

Sigmond

F∈[0,1]

可能会梯度消失,x趋于±∞时F趋于0

Tanh

F∈[-1,1]

可能会梯度消失,x趋于±∞时F趋于0

Relu

F = Max(0,z)

  1. 单侧抑制功能:使神经网络具有稀疏表达能力
  2. 可能会导致神经元死亡
  3. 具备门控功能,x趋于±∞时F趋于0或1

Leaky-Relu

F = Max(az,z)

a难以确定

BP算法

Shortcut增加深网络梯度下降的速度

BN

  1. 避免梯度消失或梯度爆炸问题
  2. 增强模型的泛化能力

CNN

输入层+(卷积层+池化层)*N+输出层

适用于时序、图片等类网格数据

卷积层

1.稀疏交互

层与层之间不是全连接

缓解过拟合

先学习局部,再整合信息

2.参数共享

节约训练成本

池化层

  1. 下采样(降采样)
  2. 均值池化、最大池化
  3. 降低参数量、具有平移不变性

ResNet

解决或缓解梯度消失问题,实现深层网络

离输出层越远,参数更新越困难

RNN(循环神经网络)

的雅各比矩阵最大的特征值

>1:梯度呈指数增长,梯度爆炸

<1:梯度呈指数减小,梯度消失

网络使用Relu激活函数的条件:权重矩阵近似单位矩阵

LSTM

门控作用,减小计算量

集成学习

1.方法

stacking:降低方差,并行,模型之间弱依赖

boosting:降低偏差,串行,模型之间强依赖

2.选用决策树为基学习器:

便于调整样本集权重、便于控制模型规模、受到扰动后更具有多样性

GBDT

直接更新模型本身、梯度上升、以损失函数的负梯度为拟合目标

与XGBT的关系:

  1. XGBD能够处理缺失值
  2. XGBT为其工程实现
  3. XGBT使用了正则化方法
  4. XGBT使用更为多种的基学习器,GBDT使用CART树
  5. XGBT使用部分属性
  6. XGBT比GBDT多使用了二阶导数信息