chapter 2. 模型选择和评估

Q1:什么模型才是好的模型?

A1:泛化能力强的(即泛化误差小的)模型是更好的模型

Q2:怎样知道模型的泛化能力?

A2:思路:将数据集分为训练/验证集,在训练集上训练模型,在验证集上跑模型得到的预测误差近似认为是泛化误差

Q3:具体来说,应该怎样对数据集进行划分?

A3:常用三种划分方法:

  1. hand-out: 直接按比例划分
  2. k-fold:k折交叉验证,特殊形式:留一法
  3. boostrap sampling: 放回抽样

Q4:如何度量模型的预测误差?(怎样才能判断一个模型表现得更好?)

A4:有很多的量化指标可以用来度量模型的误差,常用的有:错误率、正确率、查全率、查准率、F-1、 ROC、AUC、confusion matrix、cost matrix、F-beta、cost-sensitive curve、P-R图、BEP、cost curve等等

[Notes]

  1. 过拟合无法避免,我们只能缓解或是降低其发生的风险
  2. 训练/验证集要能够充分反映数据的原始规律
  3. 在不少的应用任务中,参数调得好不好往往对最终模型性能有着关键性影响
  4. 同一算法,不同参数,会产生不同的模型;不同算法,不同参数,会产生更多不同的模型

[Tips]

  1. 在验证集上进行完了模型选择和调参后,记得要在全体数据集(训练+验证集)上在跑一遍模型
  2. 直观理解查全率、查准率、F-1(P30)
  3. 记住 bias-varance 平衡的那张图

chapter 3. 线性模型

Q1:什么是线性模型?什么是广义线性模型?

A1:线性模型:形如 y_hat = W_TX+b 广义线性模型:形如 y_hat = g(W_TX+b)

Q2:怎样从二分类问题推广到多分类问题?

A2:思路:通过组合多个二分类器,得到一个多分类器 具体:

  1. OVO:对于N个类别,训练 N(N-1)/2 个分类器
  2. OVR:对于N个类别,训练 N 个分类器
  3. MvM: 常用 ECOC技术

Q3:怎样处理类别不平衡问题?

A3:

  1. 欠抽样(undersampling): 丢弃样本(但是不能随便丢弃,否则会丢失重要信息)
  2. 过抽样(oversampling): 增加样本(但是不能简单重复,否则会造成过拟合)
  3. 阈值移动(threshold-moving): 再缩放/再平衡

chapter 4. 决策树

Q1:什么是决策树?

A1:形如 【此处应该有图】

Q2:怎样生成一棵决策树?

A2:不同的算法基于不同的原则,如ID3基于信息增益原则,C4.5基于增益率原则,CART基于基尼指数

Q3:怎样对决策树进行剪枝?

A3:常用两种剪枝策略: 1、预剪枝:训练时间短,但易于欠拟合 2、后剪枝:训练时间长,但不易欠拟合

Q4:怎样处理缺失值和连续值?

A4:缺失值:C4.5 连续值:连续变量离散化,常用二分法

Notes

  1. 为了生成一棵决策树,就要合理的选择特征作为一系列的决策变量,为了怎样合理的选择特征这一问题,诞生了一系列的决策树算法
  2. 信息增益原则对可取值数目较多的特征有偏好;增益率原则对于可取值数目较少的特征有偏好
  3. 决策树决定的决策边界有一个明显的特征:轴平行
  4. 单决策树:【此处应该有图】;多变量决策树:【此处应该有图】

chapter 8. 集成学习

Q1:什么是模型融合?

A1:

通过某种方式训练和组合多个模型,最终得到一个总的模型

Q2:为什么模型融合是可行的?

A2:

“好而不同”的单个模型,通过某种有效的方式组合在一起,是有可能得到一个比单模型更好的融合模型

Q3:都有哪些模型融合的方法?

A3:

1、Boosting(串行):【此处应该有图】 2、Bagging(并行): 【此处应该有图】

Q4:什么是Boosting?

A4:

STEP1. 先从初试训练集训练出一个单模型 STEP2. 根据单模型的表现对训练数据分布进行调整,使得先前单模型做错的样本在后续的训练中得到更多的关注 STEP3. 根据调整后的训练数据训练下一个单模型,返回STEP2,直到训练得到了总共T个单模型 STEP4. T个单模型加权平均

Q5:什么是Bagging?

A5:

STEP1. 采样出T个训练数据集 STEP2. 基于各个采样集单独训练模型 STEP3. 模型融合

Q6:怎样组合多个单模型?

A6:常用1、平均法,2、投票法,3、学习法(stacking)

Q7:什么是模型间的差异性?

A7:模型的多样性(差别有多么的大)

Q8:怎样进行差异性的度量?

A8:成对型差异性度量指标,有助于绘图观察:不合度量,相关系数,Q-统计量,k-统计量

Q9:怎样增强模型间的差异性?

A9:有如下几种常用方法:1、数据样本扰动,2、特征扰动,3、输出扰动,4、算法参数扰动

Notes

  1. 模型融合中的核心问题:1、怎样训练多个单模型?2、怎样组合多个单模型?
  2. Boosting主要关注降低偏差;Bagging主要关注降低方差;
  3. RF中的k同时使用了数据样本扰动和特征扰动两种方式,且k一般取log_2(d), d是特征的维数
  4. 不稳定模型(对数据敏感):决策树、神经网络 稳定模型(对数据不敏感):SVM、朴素贝叶斯、KNN、线性分类器