程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

机器学习基础问题汇总

发布于2019-08-22 15:36     阅读(2102)     评论(0)     点赞(3)     收藏(1)


一、数据预处理

1.1 如何处理数据集中丢失或损坏的数据?

(1)在数据集中找到丢失/损坏的数据,然后删除这些行或列
(2)在数据集中用另一个值替换它们,连续值(取平均值、中位数),离散值(取类别最多的一类)*


1.2 为什么需要对数值类型的特征做归一化?

        为了消除数据特征之间的量纲影响,需要对特征进行归一化处理,使得不同指标之间具有可比性,对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内。数据归一化使得所有特征的权重相等。
(1)线性函数归一化(Min-Max Scaling)
(2)零均值归一化(Z-Score Normalization)
(3)L1/L2 范数归一化
(4)中心化:x-mean代替原特征
例如,假设有两种数值型特征,x1 的取值范围为 [0, 10],x2 的取值范围为[0, 3],在学习速率相同的情况下,x1 的更新速度会大于x2 ,需要较多的迭代才能找到最优解,如果将x1 和x2 归一化到相同的数值区间后,x1 和x2 的更新速度变得更为一致,容易更快地通过梯度下降找到最优解。


1.3 处理不平衡数据集的6个技巧

  • (1)使用正确的度量方法来评估
    精确度/特异性:正样本的预测准确率。
    召回率/敏感性:所有预测为正样本的数据的准确率。
    F1得分:精确率和召回率的调和平均
    MCC:真阳率(TPR)和假阳率(FPR)的关系。

  • (2)采样法
    有两个方法来得到平衡的数据集,一个是欠采样,一个是过采样
    a. 欠采样(类别样本数多的样本做子采样):
    欠采样通过减小多数类别的样本数量来得到平衡的数据集。保留所有的少数类别的样本,随机的抽取同样数量的多数类别样本,可以得到一个均衡的新的数据集,用来建模。
    b. 过采样(类别样本数少的样本做过采样):
    过采样用在数据集不够的情况下。通过增加少数类的样本数量来得到平衡的数据集。通过重复自助抽样或者SMOTE (合成少数类过采样)来生成少数类的数据。

  • (3)正确使用K折交叉验证
    当使用过采样来解决不均衡数据集的问题的时候,需要适当的使用交叉验证。

  • (4)集成不同的重新采样的数据集
    一个简单的最佳实践是使用所有的少数类和n个不同的多数类组成n个不同的数据集,构建模型。比如你要集成10个模型,你保留1000个少数类的样本,随机选取10000个多数类的样本,然后将这10000个多数类的样本分成10份,组成10个数据集,训练10个模型。

  • (5) 使用不同的比例进行重新采样
    不要使用同样的比例训练模型来集成,可以试试集成不同的比例。所以,如果训练了10个模型,那么使用模型具有1:1,1:2,甚至2:1,取决于用的模型,这个可以影响到一个类别得到的权值。

  • (6) 对多数类进行聚类
    将多数类聚类成r个组,这个r是样本的数量。对于每一个组,样本中心保留下来,然后使用少数类和样本中心进行模型的训练。


1.4 特征选择的方法有哪些?

(1)专家咨询法
(2)过滤法:统计学方法(方差法、相关性检验、假设性检验、互信息)
(3)包装法:递归消除特征
(4)嵌入法:L1/L2正则化


1.5 什么是组合特征?如何处理高维组合特征?

为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征


1.6 在对数据进行预处理时,应该怎样处理类别型特征?

序号编码(Ordinal Encoding)
独热编码(One-hot Encoding)
二进制编码(Binary Encoding)

*************************************************************************************************************

二、模型评估方法

2.1 如何理解准确率的局限性?

        准确率是指分类正确的样本占总样本个数的比例。
        准确率是分类问题中最简单也是最直观的评价指标,但存在明显的缺陷。比如,当负样本占99%时,分类器把所有样本都预测为负样本也可以获得99%的准确率。所以,当不同类别的样本比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素。为了解决这个问题,可以使用更为有效的平均准确率(每个类别下的样本准确率的算术平均)作为模型评估的指标。


2.2 如何权衡精确率与召回率?

精确率: 是指分类正确的正样本个数占分类器判定为正样本的样本个数的比例。
召回率: 是指分类正确的正样本个数占真正的正样本个数的比例。
Precision值和Recall值是既矛盾又统一的两个指标,为提高Precision值,分类器需要尽量在“更有把握”时才把样本预测为正样本,但此时会因为过于保守而漏掉很多“没有把握”的正样本,导致Recall值降低。

在排序问题中,通常没有一个确定的阈值把得到的结果直接判定为正样本或负样本,而是采用Top N返回结果的Precision值和Recall值来衡量排序模型的性能,显然,问题出在召回率上。如果相关结果有100个,即使Precision@5达到了100%,Recall@5也仅仅是5%。为了综合评估一个排序模型的好坏,不仅要看模型在不同Top N下的Precision@N和Recall@N,而且最好绘制出模型的P-R(Precision-Recall)曲线。P-R曲线的横轴是召回率,纵轴是精确率。


2.3 回归模型在95%的时间区间内的预测误差都小于1%,但是为什么得到的RMSE指标都非常高?

        一般情况下,RMSE能够很好地反映回归模型预测值与真实值的偏离程度。但在实际问题中,如果存在个别偏离程度非常大的离群点(Outlier)时,即使离群点数量非常少,也会让RMSE指标变得很差。


2.4 什么是ROC曲线?/ 如何绘制ROC曲线?/ 如何计算AUC?/ ROC曲线相比P-R曲线有什么特点?


2.5 在对模型进行过充分的离线评估之后,为什么还要进行在线A/B测试?

(1)离线评估无法完全消除模型过拟合的影响。
(2)离线评估无法完全还原线上的工程环境。离线评估往往不会考虑线上环境的延迟、数据丢失、标签数据缺失等情况。因此,离线评估的结果是理想工程环境下的结果。
(3)线上系统的某些商业指标在离线评估中无法计算。离线评估一般是针对模型本身进行评估,而与模型相关的其他指标,特别是商业指标,往往无法直接获得。比如,上线了新的推荐算法,离线评估往往关注的是ROC曲线、P-R曲线等的改进,而线上评估可以全面了解该推荐算法带来的用户点击率、留存时长、PV访问量等的变化。这些都要由A/B测试来进行全面的评估。


2.6 如何进行线上A/B测试?

        进行A/B测试的主要手段是进行用户分桶,即将用户分成实验组和对照组,对实验组的用户施以新模型,对对照组的用户施以旧模型。在分桶的过程中,要注意样本的独立性和采样方式的无偏性,确保同一个用户每次只能分到同一个桶中。


2.7 在模型评估过程中,有哪些主要的验证方法?

(1) Holdout检验
(2)交叉检验
(3)自助法


2.8 超参数有哪些调优方法?

为了进行超参数调优,我们一般会采用网格搜索、随机搜索、贝叶斯优化等算法。
超参数搜索算法一般包括哪几个要素:
一是目标函数,即算法需要最大化/最小化的目标;
二是搜索范围,一般通过上限和下限来确定;
三是算法的其他参数,如搜索步长。


2.9 解释过拟合和欠拟合,以及如何与之对抗?

  • 过拟合是指模型对于训练数据拟合呈过当的情况,反映到评估指标上,就是模型在训练集上的表现很好,但在测试集和新数据上的表现较差。模型过于复杂,把噪声数据的特征也学习到模型中,导致模型泛化能力下降,在后期应用过程中很容易输出错误的预测结果。

  • 欠拟合指的是模型在训练和预测时表现都不好的情况。没有很好地捕捉到数据的特征,不能够很好地拟合数据。

  • (1)降低“过拟合”风险的方法

    • 从数据入手,获得更多的训练数据。使用更多的训练数据是解决过拟合问题最有效的手段,因为更多的样本能够让模型学习到更多更有效的特征,减小噪声的影响。
    • 降低模型复杂度,适当降低模型复杂度可以避免模型拟合过多的采样噪声。
    • 正则化方法。给模型的参数加上一定的正则约束,比如将权值的大小加入到损失函数中。
    • 集成学习方法。集成学习是把多个模型集成在一起,来降低单一模型的过拟合风险,如Bagging方法。
  • (2)降低“欠拟合”风险的方法

    • 添加新特征。当特征不足或者现有特征与样本标签的相关性不强时,模型容易出现欠拟合。
    • 增加模型复杂度。
    • 减小正则化系数。正则化是用来防止过拟合的,但当模型出现欠拟合现象时,则需要有针对性地减小正则化系数。

2.10 偏差和方差之间的权衡是什么?

        测试集的泛化性能是衡量学习模型优劣的金标准,但是当训练集给定的情况下,不同的测试集得到的测试精度不同,不同的训练集构建的最优模型也不同。那么,仅仅通过测试误差来评价模型的泛化性能是存在偏差的。已知训练数据集D和测试数据集T的概率分布,用测试数据集的期望泛化误差来评价模型的泛化性能模型是最佳评价方案。测试数据集期望泛化误差包括偏差,方差和噪声。

  • 偏差表示学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。训练模型越复杂,则偏差越小。

    • 低偏差:对目标函数提出更少的假设;
    • 高偏差:对目标函数提出更多的假设;
    • 低偏差模型例子:KNN 和 SVM;
    • 高偏差模型例子:线性回归和逻辑斯特回归;
  • 方差表示同样大小的训练数据集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。如果我们使用不同的数据去训练同一个模型,那么最后我们得到的目标函数估计也是会改变的。

    • 低方差:随着训练数据集的变化,对目标函数估计值的变化非常小;
    • 高方差:随着训练数据集的变化,对目标函数估计值的变化非常大;
    • 一般而言,具有很大灵活性的非参数学习算法都具有很高的方差。高方差例子:KNN 和 SVM。
  • 噪声表示任何学习模型所能达到期望泛化误差的下界,即刻画了学习问题本身的难度。若噪声比较大,即使是最优模型,泛化误差也比较大。在这里插入图片描述

  • 当学习模型的训练程度低时,学习器的拟合能力不强,模型处于高偏差状态,训练数据集的扰动不足以使学习器发生显著变化,模型具有低方差属性;

  • 当模型训练程度高时,模型复杂度高,处于低偏差状态,训练数据集的扰动使学习器发生了显著变化,模型具有高方差属性。
    在这里插入图片描述

  • 参数或者线性的机器学习算法一般都会有一个很高的偏差和一个很低的方差。

  • 非参数或者非线性的机器学习算法一般都有一个很低的偏差和一个很高的方差。
    在这里插入图片描述
    *************************************************************************************************************

三、优化算法:

1. 梯度下降的优缺点?

2. L1与L2的区别以及如何解决L1求导困难?



所属网站分类: 技术文章 > 博客

作者:8778787

链接:https://www.pythonheidong.com/blog/article/52487/f560642d489678be826c/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

3 0
收藏该文
已收藏

评论内容:(最多支持255个字符)