101、你意识到你的模型受到低偏差和高方差问题的困扰。应该使用哪种算法来解决问题呢?为什么?
低偏差意味着模型的预测值接近实际值。换句话说,该模型有足够的灵活性,以模仿训练数据的分布。貌似很好,但是别忘了,一个灵活的模型没有泛化能力。这意味着,当这个模型用在对一个未曾见过的数据集进行测试的时候,它会令人很失望。
在这种情况下,我们可以使用bagging算法(如随机森林),以解决高方差问题。
bagging算法把数据集分成重复随机取样形成的子集。然后,这些样本利用单个学习算法生成一组模型。接着,利用投票(分类)或平均(回归)把模型预测结合在一起。
看完本了觉得有用点个赞吧!添加微信:julyedukefu14,回复【6】领取最新升级版【名企AI面试100题】,礼包部分资料如下(篇幅有限,私我领取全部资料):
102、给你一个数据集。该数据集包含很多变量,你知道其中一些是高度相关的。经理要求你用PCA。你会先去掉相关的变量吗?为什么?
你可能会说不,但是这有可能是不对的。丢弃相关变量会对PCA有实质性的影响,因为有相关变量的存在,由特定成分解释的方差被放大。
例如:在一个数据集有3个变量,其中有2个是相关的。如果在该数据集上用PCA,第一主成分的方差会是与其不相关变量的差异的两倍。此外,加入相关的变量使PCA错误地提高那些变量的重要性,这是有误导性的。
103、花了几个小时后,现在你急于建一个高精度的模型。结果,你建了5 个GBM (Gradient Boosted Models),想着boosting算法会显示魔力。不幸的是,没有一个模型比基准模型表现得更好。最后,你决定将这些模型结合到一起。尽管众所周知,结合模型通常精度高,但你就很不幸运。你到底错在哪里?
据我们所知,组合的学习模型是基于合并弱的学习模型来创造一个强大的学习模型的想法。但是,只有当各模型之间没有相关性的时候组合起来后才比较强大。由于我们已经试了5个 GBM,但没有提高精度,表明这些模型是相关的。
具有相关性的模型的问题是,所有的模型提供相同的信息。例如:如果模型1把User1122归类为 1,模型2和模型3很有可能会做有同样分类,即使它的实际值应该是0,因此,只有弱相关的模型结合起来才会表现更好。
104、KNN和KMEANS聚类(kmeans clustering)有什么不同?
不要被它们的名字里的“K”误导。
你应该知道,这两种算法之间的根本区别是,KMEANS本质上是无监督学习而KNN是监督学习。KMEANS是聚类算法。KNN是分类(或回归)算法。
KMEAN算法把一个数据集分割成簇,使得形成的簇是同构的,每个簇里的点相互靠近。该算法试图维持这些簇之间有足够的可分离性。由于无监督的性质,这些簇没有任何标签。
NN算法尝试基于其k(可以是任何数目)个周围邻居来对未标记的观察进行分类。它也被称为懒惰学习法,因为它涉及最小的模型训练。因此,它不用训练数据对未看见的数据集进行泛化。
105、真阳性率和召回有什么关系?写出方程式。
真阳性率=召回。是的,它们有相同的公式(TP / TP + FN)。
注意:要了解更多关于估值矩阵的知识。
七月在线价值千元电商用户行为预测实战特训,限时1元秒杀–>电商用户行为预测实战特训【机器学习集训营先导课之一】 - 七月在线 (julyedu.com)
本课程以真实的实际案例为主线,深入浅出掌握数据挖掘建模全流程,从业务分析到内容落地,助力小伙伴们快速入门。
十二个实战项目+ 全套课件代码 +共学社群答疑
限时1元秒杀
106、在分析了你的模型后,经理告诉你,你的模型有多重共线性。你会如何验证他说的是真的?在不丢失任何信息的情况下,你还能建立一个更好的模型吗?
要检查多重共线性,我们可以创建一个相关矩阵,用以识别和除去那些具有75%以上相关性(决定阈值是主观的)的变量。此外,我们可以计算VIF(方差膨胀因子)来检查多重共线性的存在。
VIF值<= 4表明没有多重共线性,而值> = 10意味着严重的多重共线性。
107、什么时候Ridge回归优于Lasso回归?
你可以引用ISLR的作者Hastie和Tibshirani的话,他们断言在对少量变量有中等或大尺度的影响的时候用lasso回归。在对多个变量只有小或中等尺度影响的时候,使用Ridge回归。
从概念上讲,我们可以说,Lasso回归(L1)同时做变量选择和参数收缩,而ridge回归只做参数收缩,并最终在模型中包含所有的系数。在有相关变量时,ridge回归可能是首选。
此外,ridge回归在用最小二乘估计有更高的偏差的情况下效果最好。因此,选择合适的模型取决于我们的模型的目标。
108、如何在一个数据集上选择重要的变量?给出解释。
以下是你可以使用的选择变量的方法:
1.选择重要的变量之前除去相关变量
2.用线性回归然后基于P值选择变量
3.使用前向选择,后向选择,逐步选择
4.使用随机森林和Xgboost,然后画出变量重要性图
5.使用lasso回归
6.测量可用的特征集的的信息增益,并相应地选择前n个特征量。
109、Gradient boosting算法(GBM)和随机森林都是基于树的算法,它们有什么区别?
最根本的区别是,随机森林算法使用bagging技术做出预测。GBM采用boosting技术做预测。在bagging技术中,数据集用随机采样的方法被划分成使n个样本。然后,使用单一的学习算法,在所有样本上建模。接着利用投票或者求平均来组合所得到的预测。
110、运行二元分类树算法很容易,但是你知道一个树是如何做分割的吗,即树如何决定把哪些变量分到哪个根节点和后续节点上?
分类树利用基尼系数与节点熵来做决定。简而言之,树算法找到最好的可能特征,它可以将数据集分成最纯的可能子节点。树算法找到可以把数据集分成最纯净的可能的子节点的特征量。基尼系数是,如果总体是完全纯的,那么我们从总体中随机选择2个样本,而这2个样本肯定是同一类的而且它们是同类的概率也是1。
111、你有一个数据集,变量个数p大于观察值个数n。为什么用OLS是一个不好的选择?用什么技术最好?为什么?
在这样的高维数据集中,我们不能用传统的回归技术,因为它们的假设往往不成立。当p>nN,我们不能计算唯一的最小二乘法系数估计,方差变成无穷大,因此OLS无法在此使用的。
为了应对这种情况,我们可以使用惩罚回归方法,如lasso、LARS、ridge,这些可以缩小系数以减少方差。准确地说,当最小二乘估计具有较高方差的时候,ridge回归最有效。
112、什么是凸包?(提示:想一想SVM)其他方法还包括子集回归、前向逐步回归。
当数据是线性可分的,凸包就表示两个组数据点的外边界。一旦凸包建立,我们得到的最大间隔超平面(MMH)作为两个凸包之间的垂直平分线。MMH是能够最大限度地分开两个组的线。
113、我们知道,独热编码(OneHotEncoder)会增加数据集的维度。但是标签编码(LabelEncoder)不会。为什么?
对于这个问题不要太纠结。这只是在问这两者之间的区别。
用独热编码(OneHotEncoder),数据集的维度(也即特征)增加是因为它为分类变量中存在的的每一级都创建了一个变量。例如:假设我们有一个变量“颜色”。这变量有3个层级,即红色、蓝色和绿色。
对“颜色”变量进行一位有效编码会生成含0和1值的Color.Red,Color.Blue和Color.Green 三个新变量。在标签编码中,分类变量的层级编码为0,1和2,因此不生成新变量。标签编码主要是用于二进制变量。
114、你会在时间序列数据集上使用什么交叉验证技术?是用k倍或LOOCV?
都不是。对于时间序列问题,k倍可能会很麻烦,因为第4年或第5年的一些模式有可能跟第3年的不同,而对数据集的重复采样会将分离这些趋势,我们可能最终是对过去几年的验证,这就不对了。
相反,我们可以采用如下所示的5倍正向链接策略:
fold 1 : training [1], test [2]
fold 2 : training [1 2], test [3]
fold 3 : training [1 2 3], test [4]
fold 4 : training [1 2 3 4], test [5]
fold 5 : training [1 2 3 4 5], test [6]
1,2,3,4,5,6代表的是年份。
115、给你一个缺失值多于30%的数据集?比方说,在50个变量中,有8个变量的缺失值都多于30%。你对此如何处理?
我们可以用下面的方法来处理:
1.把缺失值分成单独的一类,这些缺失值说不定会包含一些趋势信息。
2.我们可以毫无顾忌地删除它们。
3.可能值插补缺失值
它的思想来源是以最可能的值来插补缺失值比全部删除不完全样本所产生的信息丢失要少。在数据挖掘中,面对的通常是大型的数据库,它的属性有几十个甚至几百个,因为一个属性值的缺失而放弃大量的其他属性值,这种删除是对信息的极大浪费,所以产生了以可能值对缺失值进行插补的思想与方法。
116、“买了这个的客户,也买了…”亚马逊的建议是哪种算法的结果?
这种推荐引擎的基本想法来自于协同过滤。
协同过滤算法考虑用于推荐项目的“用户行为”。它们利用的是其他用户的购买行为和针对商品的交易历史记录、评分、选择和购买信息。针对商品的其他用户的行为和偏好用来推荐项目(商品)给新用户。在这种情况下,项目(商品)的特征是未知的。
注意:了解更多关于推荐系统的知识。
117、你怎么理解第一类和第二类错误?
第一类错误是当原假设为真时,我们却拒绝了它,也被称为“假阳性”。第二类错误是当原假设为是假时,我们接受了它,也被称为“假阴性”。
在混淆矩阵里,我们可以说,当我们把一个值归为阳性(1)但其实它是阴性(0)时,发生第一类错误。而当我们把一个值归为阴性(0)但其实它是阳性(1)时,发生了第二类错误。
118、当你在解决一个分类问题时,出于验证的目的,你已经将训练集随机抽样地分成训练集和验证集。你对你的模型能在未看见的数据上有好的表现非常有信心,因为你的验证精度高。但是,在得到很差的精度后,你大失所望。什么地方出了错?
在做分类问题时,我们应该使用分层抽样而不是随机抽样。随机抽样不考虑目标类别的比例。相反,分层抽样有助于保持目标变量在所得分布样本中的分布。
119、请简单阐述下决策树、回归、SVM、神经网络等算法各自的优缺点?
正则化算法(Regularization Algorithms)
集成算法(Ensemble Algorithms)
决策树算法(Decision Tree Algorithm)
回归(Regression)
人工神经网络(Artificial Neural Network)
深度学习(Deep Learning)
支持向量机(Support Vector Machine)
降维算法(Dimensionality Reduction Algorithms)
聚类算法(Clustering Algorithms)
基于实例的算法(Instance-based Algorithms)
贝叶斯算法(Bayesian Algorithms)
关联规则学习算法(Association Rule Learning Algorithms)
图模型(Graphical Models)
120、在应用机器学习算法之前纠正和清理数据的步骤是什么?
1.将数据导入
2.看数据:重点看元数据,即对字段解释、数据来源等信息;导入数据后,提取部分数据进行查看
3.缺失值清洗
根据需要对缺失值进行处理,可以删除数据或填充数据
重新取数:如果某些非常重要的字段缺失,需要和负责采集数据的人沟通,是否可以再获得
4.数据格式清洗:统一数据的时间、日期、全半角等显示格式
5.逻辑错误的数据
重复的数据
不合理的值
6.不一致错误的处理:指对矛盾内容的修正,最常见的如身份证号和出生年月日不对应
不同业务中数据清洗的任务略有不同,比如数据有不同来源的话,数据格式清洗和不一致错误的处理就尤为突出。数据预处理是数据类岗位工作内容中重要的部分。
121、什么是K-means聚类算法?
K-means也是聚类算法中最简单的一种了,但是里面包含的思想却是不一般。最早我使用并实现这个算法是在学习韩爷爷那本数据挖掘的书中,那本书比较注重应用。看了Andrew Ng的这个讲义后才有些明白K-means后面包含的EM思想。
聚类属于无监督学习,以往的回归、朴素贝叶斯、SVM等都是有类别标签y的,也就是说样例中已经给出了样例的分类。而聚类的样本中却没有给定y,只有特征x,比如假设宇宙中的星星可以表示成三维空间中的点集。聚类的目的是找到每个样本x潜在的类别y,并将同类别y的样本x放在一起。比如上面的星星,聚类后结果是一个个星团,星团里面的点相互距离比较近,星团间的星星距离就比较远了。
122、如何理解模型的过拟合与欠拟合,以及如何解决?
欠拟合(underfiting / high bias)
训练误差和验证误差都很大,这种情况称为欠拟合。出现欠拟合的原因是模型尚未学习到数据的真实结构。因此,模拟在训练集和验证集上的性能都很差。
解决办法
1 做特征工程,添加跟多的特征项。如果欠拟合是由于特征项不够,没有足够的信息支持模型做判断。
2 增加模型复杂度。如果模型太简单,不能够应对复杂的任务。可以使用更复杂的模型,减小正则化系数。比如说可以使用SVM的核函数,增加了模型复杂度,把低维不可分的数据映射到高维空间,就可以线性可分,减小欠拟合。还可以使用一些集成学习方法。
3 集成学习方法boosting(如GBDT)能有效解决high bias
123、请详细说说文字特征提取
很多机器学习问题涉及自然语言处理(NLP),必然要处理文字信息。文字必须转换成可以量化的特征向量。下面我们就来介绍最常用的文字表示方法:词库模型(Bag-of-words model)。
词库表示法
词库模型是文字模型化的最常用方法。对于一个文档(document),忽略其词序和语法,句法,将其仅仅看做是一个词集合,或者说是词的一个组合,文档中每个词的出现都是独立的,不依赖于其他词是否出现,或者说当这篇文章的作者在任意一个位置选择一个词汇都不受前面句子的影响而独立选择的。词库模型可以看成是独热编码的一种扩展,它为每个单词设值一个特征值。词库模型依据是用类似单词的文章意思也差不多。词库模型可以通过有限的编码信息实现有效的文档分类和检索。
124、请详细说说图像特征提取
计算机视觉是一门研究如何使机器“看”的科学,让计算机学会处理和理解图像。这门学问有时需要借助机器学习。
本节介绍一些机器学习在计算机视觉领域应用的基础技术。通过像素值提取特征数字图像通常是一张光栅图或像素图,将颜色映射到网格坐标里。一张图片可以看成是一个每个元素都是颜色值的矩阵。表示图像基本特征就是将矩阵每行连起来变成一个行向量。
125、了解xgboost么,请详细说说它的原理
xgboost一直在竞赛江湖里被传为神器,比如时不时某个kaggle/天池比赛中,某人用xgboost于千军万马中斩获冠军。
而我们的机器学习课程里也必讲xgboost,如寒所说:“RF和GBDT是工业界大爱的模型,Xgboost 是大杀器包裹,Kaggle各种Top排行榜曾一度呈现Xgboost一统江湖的局面,另外某次滴滴比赛第一名的改进也少不了Xgboost的功劳”。
126、请详细说说梯度提升树(GBDT)的原理
GBDT主要由三个概念组成:Regression Decistion Tree(即DT),Gradient Boosting(即GB),Shrinkage (算法的一个重要演进分枝,目前大部分源码都按该版本实现)。搞定这三个概念后就能明白GBDT是如何工作的,要继续理解它如何用于搜索排序则需要额外理解RankNet概念,之后便功德圆满。
127、请说说Adaboost 算法的原理与推导
1.1 Adaboost是什么
AdaBoost,是英文"Adaptive Boosting"(自适应增强)的缩写,由Yoav Freund和Robert Schapire在1995年提出。它的自适应在于:前一个基本分类器分错的样本会得到加强,加权后的全体样本再次被用来训练下一个基本分类器。同时,在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数。
1.2 Adaboost算法流程
给定一个训练数据集T={(x1,y1), (x2,y2)…(xN,yN)},其中实例,而实例空间,yi属于标记集合{-1,+1},Adaboost的目的就是从训练数据中学习一系列弱分类器或基本分类器,然后将这些弱分类器组合成一个强分类器。
128、机器学习中的L0、L1与L2范数到底是什么意思?
监督机器学习问题无非就是“minimizeyour error while regularizing your parameters”,也就是在规则化参数的同时最小化误差。最小化误差是为了让我们的模型拟合我们的训练数据,而规则化参数是防止我们的模型过分拟合我们的训练数据。
多么简约的哲学啊!因为参数太多,会导致我们的模型复杂度上升,容易过拟合,也就是我们的训练误差会很小。但训练误差小并不是我们的最终目标,我们的目标是希望模型的测试误差小,也就是能准确的预测新的样本。
129、请详细说说决策树的构造原理
第一部分、决策树学习
1.1、什么是决策树
咱们直接切入正题。所谓决策树,顾名思义,是一种树,一种依托于策略抉择而建立起来的树。
机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。
从数据产生决策树的机器学习技术叫做决策树学习, 通俗点说就是决策树,说白了,这是一种依托于分类、训练上的预测树,根据已知预测、归类未来。
130、怎么确定LDA的topic个数?
131、sklearn随机森林的特征重要度是不是偏好数值型变量呢?
我在做kaggle的Titanic问题时使用随机森林和xgboost发现两个数值型的变量重要度非常高,远远高过性别这种在数据分析时候认为很重要的特征
看sklearn文档说特征重要度是按照特征对不纯度减少的贡献来排的,刚才在网上找到了一篇论文大概是说这种特征重要度的衡量方式会偏好那些类别多的变量(feature selection based on impurity reduction is biased towards preferring variables with more categories)。
sklearn的文档说sklearn的决策树都是cart树,cart树在对待数值型特征的时候也可以理解成一个类别数等于样本数的类别型特征吧。那么是因为这个原因导致随机森林偏好数值型特征吗?
解析:
① 类别型本身也是转化成数值型处理的,在cart里,转化成 是否是某个属性取值 的01结果
② 应该没有你说的这种偏好。不过数值型的字段,可以多次用来切分。一个极端的例子,给树足够的深度,如果一个数值型的字段,每个样本取值都不一样,可以切到足够细(甚至一个叶子节点一个样本),但是显然这时候过拟合了。性别只可以切分一次,属性取值比较有限。
132、连续特征,既可以离散化,也可以做幅度缩放,那这两种处理方式分别适用于什么场景呢?
幅度缩放一般在计算型模型里会用到,比如LR DNN
离散化一般是线性模型会用到,比如LR。
如七月在线寒老师所说,离散化的目的有以下几个方面:
① 非线性!非线性!非线性!逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合;
离散特征的增加和减少都很容易,易于模型的快速迭代;
② 速度快!速度快!速度快!稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;
③ 鲁棒性!鲁棒性!鲁棒性!离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;
④ 方便交叉与特征组合:离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;
⑤ 稳定性:特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问;
⑥ 简化模型:特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。
133、从几何直观的角度解释下为什么拉格朗日乘子法能取到最优值?
134、A/B测试的数学原理与深入理解
当面对众多选择时,如何选才能最大化收益(或者说最小化我们的开销)?比如,怎么选择最优的上班的路线才能使途中花费的时间最少?假设每天上下班路线是确定的,我们便可以在账本中记下往返路线的长度。
A/B测试便是基于数据来进行优选的常用方法,在记录多次上班路线长度后,我们便会从数据中发现到一些模式(例如路线A比路线B花的时间更少),然后最终一致选择某条路线。
当A/B测试遇到非简单情况时(如分组不够随机时,或用户量不够大到可以忽略组间差异,或不希望大规模A/B测试长期影响一部分用户的收益),该怎样通过掌握理论知识来更好的指导实践呢?本文尝试通过由浅入深的介绍,希望能够帮助大家对A/B测试有更加深入的理解。
135、如何更科学的做机器学习100天入门计划
无意中在微博上发现一篇《机器学习100天计划》的文章(详在文末),仔细看了后发现,整体很随意,忽而机器学习 深度学习,忽而数学 数据分析 可视化,其实比较好的计划就是按照七月在线的集训营大纲来:复习完数学2后,开始python 数据分析 可视化 大数据 机器学习 深度学习。
所以便有了本文,做一个更加科学的机器学习100天入门计划,然后首发本七月在线APP里。
136、如何通俗理解主成成分分析PCA
一、问题
我们在实际中,往往会发现真实的训练数据总是存在各种各样的问题:
1、 比如拿到一个汽车的样本,里面既有以“千米/每小时”度量的最大速度特征,也有“英里/小时”的最大速度特征,显然这两个特征有一个多余。
2、 拿到一个数学系的本科生期末考试成绩单,里面有三列,一列是对数学的兴趣程度,一列是复习时间,还有一列是考试成绩。我们知道要学好数学,需要有浓厚的兴趣,所以第二项与第一项强相关,第三项和第二项也是强相关。那是不是可以合并第一项和第二项呢?
3、 拿到一个样本,特征非常多,而样例特别少,这样用回归去直接拟合非常困难,容易过度拟合。比如北京的房价:假设房子的特征是(大小、位置、朝向、是否学区房、建造年代、是否二手、层数、所在层数),搞了这么多特征,结果只有不到十个房子的样例。要拟合房子特征->房价的这么多特征,就会造成过度拟合。
4、 这个与第二个有点类似,假设在IR中我们建立的文档-词项矩阵中,有两个词项为“learn”和“study”,在传统的向量空间模型中,认为两者独立。然而从语义的角度来讲,两者是相似的,而且两者出现频率也类似,是不是可以合成为一个特征呢?
137、如何通俗理解LightGBM
本题解析大部分内容来自微软亚洲研究院DMTK团队的研究员们撰文解读,教你玩转LightGBM。
不久前微软DMTK(分布式机器学习工具包)团队在GitHub上开源了性能超越其他boosting工具的LightGBM,在三天之内GitHub上被star了1000次,fork了200次。知乎上有近千人关注“如何看待微软开源的LightGBM?”问题,被评价为“速度惊人”,“非常有启发”,“支持分布式”,“代码清晰易懂”,“占用内存小”等。
GBDT (Gradient Boosting Decision Tree)是机器学习中一个长盛不衰的模型,其主要思想是利用弱分类器(决策树)迭代训练以得到最优模型,该模型具有训练效果好、不易过拟合等优点。GBDT在工业界应用广泛,通常被用于点击率预测,搜索排序等任务。GBDT也是各种数据挖掘竞赛的致命武器,据统计Kaggle上的比赛有一半以上的冠军方案都是基于GBDT。
138、线性回归要求因变量服从正态分布?
139、什么是K近邻算法和KD树?
140、如何通俗理解贝叶斯方法和贝叶斯网络?
1 贝叶斯方法
长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大。而且概率虽然未知,但最起码是一个确定的值。比如如果问那时的人们一个问题:“有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的概率是多少?”他们会想都不用想,会立马告诉你,取出白球的概率就是1/2,要么取到白球,要么取不到白球,即θ只能有一个值,而且不论你取了多少次,取得白球的概率θ始终都是1/2,即不随观察结果X 的变化而变化。
这种频率派的观点长期统治着人们的观念,直到后来一个名叫Thomas Bayes的人物出现。
1.1 贝叶斯方法的提出
托马斯·贝叶斯Thomas Bayes(1702-1763)在世时,并不为当时的人们所熟知,很少发表论文或出版著作,与当时学术界的人沟通交流也很少,用现在的话来说,贝叶斯就是活生生一民间学术“屌丝”,可这个“屌丝”最终发表了一篇名为“An essay towards solving a problem in the doctrine of chances”,翻译过来则是:机遇理论中一个问题的解。你可能觉得我要说:这篇论文的发表随机产生轰动效应,从而奠定贝叶斯在学术史上的地位。
141、最大熵模型中的数学推导
142、关于xgboost使用泰勒展开式的优点?泰勒展开取得函数做自变量的二阶导数形式, 可以在不选定损失函数具体形式的情况下, 仅仅依靠输入数据的值就可以进行叶子分裂优化计算, 本质上也就把损失函数的选取和模型算法优化/参数选择分开了. 请问为什么在 可以在不选定损失函数具体形式的情况下, 仅仅依靠输入数据的值就可以进行叶子分裂优化计算?
143、你有自己用过别的模型然后调参之类的吗?能说一下基本的调参流程吗?XGBoost知道吗,以XGBoost为例子说一下调参流程吧。
(个人的思路):一般来说采用贝叶斯优化或者遗传算法等启发式的优化算法确定相对最佳参数(如果不熟悉的话用随机搜索也是可以的,或者网格搜索但是参数得到步长设置的很大,一步一步确定相对最优参数的区间),然后再根据实际的模型在验证集上的表现做一些微调,对于过拟合优先调整max_depth和树的数量,在实际使用过程中这两个参数对于模型的整体效果影响很大很明显。对于欠拟合,反着来就行了。
144、XGBoost和GBDT的区别有哪些?
145、XGB特征重要性程度是怎么判断的?
146、xgb的预排序算法是怎么做的呢?
将原始特征进行排序之后以块的形式保存到内存中,在块里面保存排序后的特征值及对应样本的引用,以便于获取样本的一阶、二阶导数值,但意味着除了保存原始特征之外还要保存原始特征的排序结果,耗内存。
147、RF和xgboost哪个对异常点更敏感
xgb明显敏感的多,当然对rf也是有一定影响的,rf的每棵数的生成是独立的,异常点数量不多的情况下异常点常常和正常样本中的某些样本合并在一个分支里。但是xgb不一样,异常样本的t-1轮的预测值和真实标签计算出来的负梯度会一直很大。
148、xgb何时停止分裂?
人工设定的参数,max_depth,min_data_in_leaf等等,这类通过超参数形式限制树的复杂度的方法都会引发xgb的分裂的停止,也就是常说的预剪枝;人工不限制,自由生长的情况下,当分裂增益小于0则基学习器停止分裂
149、对比一下XGB和lightGBM在节点分裂时候的区别
xgb是level-wise,lgb是leaf-wise,level-wise指在树分裂的过程中,同一层的非叶子节点,只要继续分裂能够产生正的增益就继续分裂下去,而leaf-wise更苛刻一点,同一层的非叶子节点,仅仅选择分裂增益最大的叶子节点进行分裂。
150、简要说一下Lightgbm相对于xgboost的优缺点
优点:直方图算法—更高(效率)更快(速度)更低(内存占用)更泛化(分箱与之后的不精确分割也起到了一定防止过拟合的作用);
缺点:直方图较为粗糙,会损失一定精度,但是在gbm的框架下,基学习器的精度损失可以通过引入更多的tree来弥补。
151、xgboost对特征缺失敏感吗,对缺失值做了什么操作,存在什么问题
不敏感,可以自动处理,处理方式是将missing值分别加入左节点 右节点取分裂增益最大的节点将missing样本分裂进这个节点 。这种处理方式的问题在xgboost仅仅在特征的非缺失的值上进行分裂然后missing值直接放入其中一个节点,显然当缺失值很多的情况下,比如缺失80%,那么xgb分裂的时候仅仅在20%的特征值上分裂,这是非常容易过拟合的。
152、xgb和lgb在特征、数据并行上存在什么差异?
153、为什么xgboost不用后剪枝?
后剪枝计算代价太高了,合并一次叶节点就要计算一次测试集的表现,数据量大的情况下非常消耗时间,而且也并不是特别必要,因为这样很容易过拟合测试集。
看完本了觉得有用点个赞吧!添加微信:julyedukefu14,回复【6】领取最新升级版【名企AI面试100题】,礼包部分资料如下(篇幅有限,私我领取全部资料):
七月在线价值千元电商用户行为预测实战特训,限时1元秒杀–>电商用户行为预测实战特训【机器学习集训营先导课之一】 - 七月在线 (julyedu.com)
本课程以真实的实际案例为主线,深入浅出掌握数据挖掘建模全流程,从业务分析到内容落地,助力小伙伴们快速入门。
十二个实战项目+ 全套课件代码 +共学社群答疑
限时1元秒杀