《百面机器学习》读书笔记

巧妇难为无米之炊
数据和特征是米,模型和算法是巧妇。

结构化数据:数值型,类别型
非结构化数据:文本图像音频
一、特征归一化
归一化:线性函数归一化
零均值归一化
z=(x-u)/标准差

归一化会使得梯度下降更快找到最优解
但通过梯度下降法求解的模型才需要归一化。
对于决策树模型并不适用,归一化不会改变样本在特征X上的信息增益。

二、类别型特征(性别血型)
除了决策树少数模型能直接处理字符串形式的输入

序号编码(处理类别间具有大小关系的数据)

独热编码(处理类别间无大小关系,注意使用稀疏向量形式输入,配合特征选择降低维度,例LR模型中,参数数量会随着维度增高而增加,易引起过拟合问题),
二进制编码:先赋予类别ID,转换成二进制码,本质上利用二进制对ID进行哈希映射,且特征 向量维数少于独热编码

三、高维组合特征的处理
为提高复杂关系的拟合能力
参数规模太大:将用户和物品分别用K维的低维向量表示,这等同于矩阵分解

四、组合特征
给定原始输入如何构建决策树?
利用梯度提升决策树,每次在之前构建的决策树的残差上构建下一颗决策树


一、评估指标的局限性
分类(ROC曲线,AUC面积,PR曲线)、回归预测趋势(RMSE或绝对百分比误差)、排序(精确率、召回率,PR曲线)问题需要不同的评估指标

ROC曲线横坐标为假阳性率,纵坐标为真阳性率
ROC特点:当正负样本分布变化时,曲线形状基本不变
如果研究者更希望看到模型在特定数据集上的表现,PR更直观反映性能

三、余弦相似度和欧氏距离
欧式距离受维度的影响,范围不固定.体现数值上的绝对差异
余弦相似度在高维情况下依然保持“相同为1,正交为0,相反为-1”。体现方向上的相对差异

如用户活跃度应用欧式距离,喜好应用相似度

四、AB测试的陷阱
验证新模块、新功能、新产品是否有效,新算法、新模型的效果是否提升,新设计是否受用户欢迎

为何需要在线AB测试:

  1. 离线评估无法消除过拟合的影响,无法完全代替线上评估结果
  2. 无法完全还原线上的工程环境。延迟,数据丢失,标签数据丢失
  3. 线上系统的商业指标在离线评估jiui中无法计算,线上评估全面了解用户点击率,留存时长,PV访问量的变化

进行AB测试的主要手段是用户分桶,即将用户分为实验组和对照组。对实验组的用户施以新模型,对对照组的用户施以旧模型

确报每个用户每次只能分到同一个桶中。注意样本独立性,采样方式无偏性

五、模型评估的方法
k-fold交叉验证,样本划分为K个大小相等的样本子集。依次遍历k个子集,每次把当前子集作为验证集,其余所有作为训练集,进行模型的训练与评估。最后把平均值作为评估指标。K经常取10.

自助法:对总数N的样本集合,进行N次有放回的随机采样,得到大小N的训练集。有的没被抽过,有的重复抽过。将没有抽过的作验证集。

N趋向正无穷时,未抽中概率为1/e,即36.8%。

六、超参数调优

  1. 网格搜索:一般使用较大的搜索范围和较大的步长确定可能的最优位置。然后逐渐缩小范围和步长。
  2. 随机搜索:理念是随机找样本点,样本集足够大,找到最优概率大
  3. 贝叶斯优化:在测试新点时,利用之前的信息,一直更新目标函数的先验分布。最后算法由后验分布给出的全局最值。
    缺点:一旦找到局部最优值,会在该区域不断采样。容易陷入局部最优

七、降低过拟合和欠拟合的方法

  1. 获取更多训练数据:生成式对抗网络

  2. 降低模型复杂度,避免拟合过多的采样噪声

  3. 正则化方法:给模型的参数加上一定的正则约束,如将权值的大小加入损失函数中

  4. 集成学习方法。如Bagging方法

  5. 添加新特征

  6. 增加模型复杂度

  7. 减小正则化系数


经典算法
SVM:把球拍到空中的念力叫“核映射”,空间的纸片叫分类超平面。

LR回归解决分类问题,线性回归是预测问题

决策树 启发式函数
预剪枝 在结点扩展时,计算当前划分能否带来模型泛化能力的提升。
后剪枝
基尼系数低,代表特征越优秀


降维
特征的高纬度带来高资源消耗,即用低维度向量表示高纬度特征
主成分分析PCA:线性、非监督、全局(PCA效果不好的可以用非线性降维方法)
不考虑数据的类别,映射到方差较大的方向上

对样本数据中心化处理
求样本协方差矩阵
对协方差矩阵特征值分解,特征值从大到小排列。
对特征值前d大对应的特征向量w1,..wd,通过映射将n维样本映射到d维

与最大方差角度殊途同归

线性判别分析LDA:有监督降维方法,最大化类间距离,最小化类内距离
引入核函数扩展LDA以处理分布更复杂的数据


优化算法
机器学习=模型表征+模型评估+优化算法

实际问题:大规模,高度非凸
一、要根据特定的模型,选择合适的损失函数
二、凸优化问题,所有局部最小值就是全局最小值。其他如SVM,线性回归等线性模型。
主成分分析的优化问题是非凸优化问题。
三、经典方法
优化算法分为:直接法(要求是凸函数,梯度为0有闭式解)
和迭代法(迭代地修正对最优解的估计)
四、梯度验证
五、随机梯度下降
如何取M值,如何随机取M个点。如果取学习速率α
六、批量梯度下降法,动量方法、adam方法
七、L1正则化与稀疏性
L1正则化使得模型具有稀疏性


采样
自助法和刀切法


GBDT梯度提升:模型不需要参数化形式表示,定义在函数空间中,大大扩展可以使用的函数种类(基于损失函数的负梯度构造新的决策树)
梯度下降:模型可以参数化形式表示

GBDT优点:
树与树间并行计算
适合分布稠密的数据集

缺点:
不适合高维稀疏
不适合文本分类特征
训练过程需要串行

XGBOOST是GBDT的改进,显示加入正则项,控制复杂度,减少过拟合
XGBOOST采用多种基分类器,GBDT是线性分类器
XGBOOST运用采样,GBDT运用全部数据
XGBOOST对缺失值有识别,GBDT没有

发布了105 篇原创文章 · 获赞 109 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 创作都市 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览