BAT机器学习面试1000题(411~415题)


411、什么是OOB?随机森林中OOB是如何计算的,它有什么优缺点?

解析:

bagging方法中Bootstrap每次约有1/3的样本不会出现在Bootstrap所采集的样本集合中,当然也就没有参加决策树的建立,把这1/3的数据称为袋外数据oob(out of bag),它可以用于取代测试集误差估计方法。

袋外数据(oob)误差的计算方法如下:

对于已经生成的随机森林,用袋外数据测试其性能,假设袋外数据总数为O,用这O个袋外数据作为输入,带进之前已经生成的随机森林分类器,分类器会给出O个数据相应的分类,因为这O条数据的类型是已知的,则用正确的分类与随机森林分类器的结果进行比较,统计随机森林分类器分类错误的数目,设为X,则袋外数据误差大小=X/O;这已经经过证明是无偏估计的,所以在随机森林算法中不需要再进行交叉验证或者单独的测试集来获取测试集误差的无偏估计。

412、推导朴素贝叶斯分类 P(c|d),文档 d(由若干 word 组成),求该文档属于类别 c 的概率, 并说明公式中哪些概率可以利用训练集计算得到

解析:

根据贝叶斯公式P(c|d)=(P(c)P(d|c)/P(d))

这里,分母P(d)不必计算,因为对于每个类都是相等的。 分子中,P(c)是每个类别的先验概率,可以从训练集直接统计,P(d|c)根据独立性假设,可以写成如下 P(d|c)=¥P(wi|c)(¥符号表示对d中每个词i在c类下概率的连乘),P(wi|c)也可以从训练集直接统计得到。 至此,对未知类别的d进行分类时,类别为c=argmaxP(c)¥P(wi|c)。

413、请写出你了解的机器学习特征工程操作,以及它的意义

解析:

特征工程包括数据与特征处理、特征选择和降纬三部分。

数据与特征处理包括:

1.数据选择、清洗、采样

  • 数据格式化;

  • 数据清洗,填充缺失值、去掉脏数据,将不可信的样本丢掉,缺省值极多的字段考虑不用;

  • 采样:针对正负样本不平衡的情况,当正样本远大于负样本时,且量都很大时,使用下采样,量不大时,可采集更多的数据或oversampling或修改损失函数;采样过程中可利用分层抽样保持不同类别数据的比例。


2.不同类型数据的特征处理

  • 数值型:幅度调整/归一化、log等变化、统计值(例如max、min、mean、std)、离散化、分桶等

  • 类别型:one-hot编码等

  • 时间型: 提取出连续值的持续时间和间隔时间;提取出离散值的“年”、“月”、“日”、“一年中哪个星期/季度”、“一周中的星期几”、“工作日/周末”等信息

  • 文本型:使用If-idf特征

  • 统计型:加减平均、分位线、次序、比例


意义:

  • 对数据进行预处理,可提高数据质量,提高挖掘质量。对数据进行清洗可填充缺失值、光滑噪声数据,识别和删除离群点数据,保证数据的一致性;

  • 使用正确的采样方法可解决因数据不平衡带来的预测偏差;

  • 对不同的数据类型进行不同的特征处理有助于提高特征的可用性,例如对数值型数据进行归一化可将数据转化到统一量纲下;对类别型数据,可用one-hot编码方法将类别数据数字化,数字化特征之后可更用来计算距离、相似性等;可从时间型数据当中提取中更多的时间特征,例如年、月和日等,这些特征对于业务场景以及模型的预测往往有很大的帮助。统计型特征处理有助于从业务场景中挖掘更丰富的信息。


特征选择包括:

1.Filter

使用方差、Pearson相关系数、互信息等方法过滤特征,评估单个特征和结果值之间的相关程度,留下Top相关的特征部分。

2.Wrapper

可利用“递归特征删除算法”,把特征选择看做一个特征子集搜索问题,筛选各种特征子集,用模型评估效果。

3.Embedded

可利用正则化方式选择特征,使用带惩罚项的基模型,除了选择出特征外,同时也进行了降纬。

意义:

-剔除对结果预测不大的特征,减小冗余,选择有意义的特征输入模型,提高计算性能。

降纬:

方法:主成分分析法(PCA)和线性判别分析(LDA)

意义:

通过PCA或LDA方法,将较高纬度样本空间映射到较低维度的样本空间,从而达到降纬的目的,减少模型的训练时间,提高模型的计算性能。

414、请写出你对VC维的理解和认识

解析:

VC维是模型的复杂程度,模型假设空间越大,VC维越高。某种程度上说,VC维给机器学习可学性提供了理论支撑。

  1. 测试集合的loss是否和训练集合的loss接近?VC维越小,理论越接近,越不容易overfitting。

  2. 训练集合的loss是否足够小?VC维越大,loss理论越小,越不容易underfitting。


我们对模型添加的正则项可以对模型复杂度(VC维)进行控制,平衡这两个部分。

415、怎么理解“机器学习的各种模型与他们各自的损失函数一一对应?”

解析:

寒:首先你要明确 超参数 和 参数 的差别,超参数通常是你为了定义模型,需要提前敲定的东西(比如多项式拟合的最高次数,svm选择的核函数),参数是你确定了超参数(比如用最高3次的多项式回归),学习到的参数(比如多项式回归的系数)

另外可以把机器学习视作 表达 + 优化,其中表达的部分,各种模型会有各种不同的形态(线性回归 逻辑回归 SVM 树模型),但是确定了用某个模型(比如逻辑回归)去解决问题,你需要知道当前模型要达到更好的效果,优化方向在哪,这个时候就要借助损失函数了。

下面就是一个小例子,一样的打分函数,选用不同的loss function会变成不同的模型

1.jpeg


图取自 http://cs231n.github.io/linear-classify/

有一个我汉化的版本 https://blog.csdn.net/han_xiao ... 99583

更深入的内容欢迎查阅更多机器学习的资料,或者参与机器学习相关的课程,来讨论
已邀请:

要回复问题请先登录注册

返回顶部