面试准备(机器学习)

  1. 正则化方法:
    (1)参数添加约束,例如L1、L2范数等
    (2)训练集合扩充,例如添加噪声、图片翻转(cv),近义词替换(nlp)
    (3)Dropout
    (4)Early Stopping
    (5)集成化方法,bagging,boosting
    参考:
    https://blog.csdn.net/liujiandu101/article/details/55103831

    dropout防止过拟合的原因:
    (1)取平均的作用(相当于训练了不同的网络)
    (2)减少神经元之间复杂的共适应关系(不依赖于某一些特征,学习更加鲁棒的特征)
    参考:
    https://blog.csdn.net/hk121/article/details/71081624

2.过拟合和欠拟合解决方法
过拟合(和1答案一样)
欠拟合:
(1)添加新特征(增加模型复杂度)
(2)不使用正则化
参考:
https://blog.csdn.net/willduan1/article/details/53070777

  1. 怎么做模型融合
    (1)投票 (2)取平均(3)boosting (4)bagging (5)stacking

  2. bagging和boosting区别
    (1)bagging有放回抽样,boosting是用全部样本
    (2)bagging样本权重系数相同,boosting分错的样本权重大
    (3)bagging各分类器权重相同,boosting错误率低的学习器权重大
    (4)bagging各分类器可以并行训练,而bagging只能串行生成
    (5)bagging是减少方差,boosting是减少偏差
    参考:
    https://www.cnblogs.com/earendil/p/8872001.html

5 boosting,bagging,adaboost,gbdt,xgboost,随机森林介绍
随机森林的行采样是对样本采样,列采样是对特征进行采样

xgboost根据结构分数的增益情况计算出来选择哪个特征的哪个分割点,某个特征的重要性,就是它在所有树中出现的次数之和。

GBDT和XGBOOST区别:

(1)在使用CART作为基分类器时,XGBOOST显式地加入了正则项来控制模型的复杂度,有利于防止过拟合,从而提高模型的泛化能力;

(2)GBDT在模型训练时只使用了代价函数的一阶导数信息,XGBOOST对代价函数进行二阶泰勒展开,可以同时使用一阶和二阶导数;

(3)传统的GBDT采用CART作为基分类器,XGBOOST支持多种类型的基分类器,比如线性分类器;

(4)传统的GBDT在每轮迭代时使用全部的数据,XGBOOST则采用了与随机森林相似的策略,支持对数据进行采样;

(5)传统的GBDT没有设计对缺失值进行处理,XGBOOST能够自动学习出缺失值的处理策略。

xgboost处理缺失值:https://www.jianshu.com/p/a9f49e08be86(感觉说的不清楚,大致意思是分别放到左右子树,然后取增益大的作为结果)

参考:https://blog.csdn.net/qq_34896915/article/details/73771287

  1. 样本不均衡解决方法:
    (1)产生新数据(小样本过采样和大样本欠采样)过采样有一个smote算法(运用k近邻产生新样本)
    (2)改变权值(小样本权值大,大样本权值小)
    (3)组合方法(集成方法boosting,bagging)
    (4)特征选择(选择区分度大的样本)
    参考:
    https://www.jianshu.com/p/76dce1fca85b

  2. LR用离散特征的原因:
    (1)稀疏向量运算快
    (2)对异常数据有较好的鲁棒性,增加泛化能力,不受噪声影响
    (3)在激活函数作用下相当于增加了非线性,增加模型表达能力(单一变量被离散化为N个,如年龄被离散为10到20之间,20到30之间,大于30的)

业内做法:海量离散特征+LR 或者 少量连续特征+复杂模型(GBDT)

GBDT找特征组合,对特征编码,LR建模(用于CTR点击率预测)(https://blog.csdn.net/u014033218/article/details/88382259)

参考:
https://blog.csdn.net/Dby_freedom/article/details/83782000

  1. 神经网络权值初始化方式:
    不可以全0初始化,否则所有神经元更新相同,出现对称性
    (1)标准初始化(适用于tanh)
    (2)Xavier初始化(要求关于0对称,适用于tanh)
    (3)He初始化(适用于relu)
    参考:
    https://blog.csdn.net/xxy0118/article/details/84333635
    https://blog.csdn.net/u012151283/article/details/78230891/

  2. 分类和回归的损失函数
    回归:绝对值,平方损失,huber损失
    分类:0-1损失,LR损失(有两种形式,交叉熵的标签为0,1;另一种形式标签为-1,1),Hinge损失(合页损失,SVM用),指数损失(adaboost用)
    参考:https://www.cnblogs.com/massquantity/p/8964029.html

  3. batch normalization优点:
    (1)加快学习速度
    (2)解决梯度消失问题(可以使用sigmoid或者tanh函数了,将隐藏层输出变到非饱和区,避免梯度为0)
    (3)有正则化效果(mini-batch的偏差和方差不同,引入噪音)
    (4)对模型中的参数不敏感
    参考:
    https://www.jianshu.com/p/b38e14c1f14d

  4. 特征选择方法:
    在这里插入图片描述
    参考:
    https://www.zhihu.com/question/28641663/answer/110165221

  5. 梯度爆炸解决方法
    (1)梯度剪切
    (2)权重正则化(L1和L2正则)

梯度消失解决方法:
(1)用relu,leakrelu等激活函数(避免梯度过小趋于0)
(2)batch normalization (标准化,将隐藏层输出变到0附近,使梯度变大一些)
(3)残差ResNet
(4)LSTM
参考:
https://blog.csdn.net/qq_25737169/article/details/78847691

  1. 归一化和标准化
    (1)归一化
    在这里插入图片描述
    改变数据分布,有量纲变成无量纲,易受异常点影响

(2)标准化
在这里插入图片描述
不改变数据分布,对异常点不敏感
参考:
https://blog.csdn.net/starter_____/article/details/79215684

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值