首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
在打卡的鸽子很活泼
门头沟学院 人工智能
发布于广东
关注
已关注
取消关注
@Fintech砖:
【18】机器学习算法面试八股
331决策树的划分标准是什么有三种:最大信息增益、最大信息增益率、基尼系数。而这三种不同的划分标准就对应了三种典型决策树:ID3(最大信息增益)、C4.5(最大信息增益率)、CART(基尼系数)。信息增益:指的是使用某一个属性a进行划分后,所带来的纯度(信息熵用来度量样本集合的纯度)提高的大小。一般而言,信息增益越大,意味着使用属性a来进行划分所获得的“纯度提升”越大。但信息增益对可取值较多的属性有所偏好。而信息增益率则解决了特征偏好的问题。但是不论是信息增益还是信息增益率,存在的问题是涉及对数运算,计算量大,为了解决这个问题。可以采用基尼系数作为节点划分的标准。332ID3和C4.5的区别最大的区别是划分标准的不同:ID3采用信息增益,而C4.5采用的是信息增益率。C4.5继承了ID3的优点,并在以下几个方面对ID3算法进行了改进:用信息增益率来选择属性,克服了用信息增益选择属性是偏向选择去之多的属性的不足在树的构造过程中进行剪枝能够对连续的属性进行离散化处理能够对不完整的数据进行处理333树模型对离散特征怎么处理的树模型是要寻找最佳分裂点,对于离散特征,树模型会评估每个离散值的信息增益,将信息增益最大的数值作为分裂点,因此,树模型不需要对离散特征进行事先one-hot处理,否则会使特征维度增大且稀疏,不仅会增加模型的计算量,而且会损失数据的信息量造成模型的效果不佳,以及过拟合的风险。也不需要进行归一化处理。334决策树出现过拟合的原因及解决办法原因在决策树构建的过程中,对决策树的生长没有进行合理的限制(剪枝);样本中有一些噪声数据,没有对噪声数据进行有效的剔除;解决办法选择合理的参数进行剪枝,可以分为预剪枝和后剪枝,我们一般采用后剪枝的方法;利用K-folds交叉验证,将训练集分为K份,然后进行K次交叉验证,每次使用K-1份作为训练样本数据集,另外一份作为测试集;减少特征,计算每一个特征和响应变量的相关性,常见得为皮尔逊相关系数,将相关性较小的变量剔除;335如何对决策树进行剪枝?剪枝是防止决策树过拟合的方法。一棵完全生长的决策树很可能失去泛化能力,因此需要剪枝。剪枝的策略剪枝分为预剪枝和后剪枝两种,预剪枝是在构建决策树时抑制它的生长,后剪枝是决策树生长完全后再对叶子节点进行修剪。预剪枝设置一个树的最大高度/深度或者为树设置一个最大节点数,达到这个值即停止生长(限制深度)对每个叶子节点的样本数设置最小值,生长时叶子节点样本数不能小于这个值(限制宽度)判断每次生长对系统性能是否有增益后剪枝错误率降低剪枝(Reduced-Error Pruning)后剪枝错误率降低剪枝的方法比较直观,从下至上遍历所有非叶子节点的子树,每次把子树剪枝(所有数据归到该节点,将数据中最多的类设为结果),与之前的树在验证集上的准确率进行比较,如果有提高,则剪枝,否则不剪,直到所有非叶子节点被遍历完。悲观剪枝(Pessimistic Error Pruning)代价复杂度剪枝(Cost-Complexity Pruning)预剪枝和后剪枝的优缺点比较时间成本方面,预剪枝在训练过程中即进行剪枝,后剪枝要在决策树完全生长后自底向上逐一考察。显然,后剪枝训练时间更长。预剪枝更适合解决大规模问题。剪枝的效果上,预剪枝的常用方法本质上是基于贪心的思想,但贪心法却可能导致欠拟合,后剪枝的欠拟合风险很小,泛化性能更高。另外,预剪枝的有些方法使用了阈值,如何设置一个合理的阈值也是一项挑战。336决策树需要进行归一化处理吗不需要归一化,因为他们不关心变量的值,而是关心变量的分布和变量之间的条件概率。决策树是一种概率模型,数值缩放,不影响分裂点位置。所以一般不对其进行归一化处理。337决策树与逻辑回归的区别对于拥有缺失值的数据,决策树可以应对,而逻辑回归不可以,需要挖掘人员预先对缺失数据进行处理;逻辑回归对数据整体结构的分析优于决策树,而决策树对局部结构的分析优于逻辑回归;逻辑回归擅长分析线性关系,而决策树对线性关系的把握较差。线性关系在实践中有很多优点:简洁,易理解,可以在一定程度上防止对数据的过度拟合。逻辑回归对极值比较敏感,容易受极端值的影响,而决策树在这方面表现较好。执行速度上:当数据量很大的时候,逻辑回归的执行速度非常慢,而决策树的运行速度明显快于逻辑回归。338说下决策树的损失函数339集成学习链接XGBlgb340LightGBM和xgBoost、GBDT的区别xgboost与LightGBM的区别切分算法(切分点的选取):XGBoost通过对所有特征都按照特征的数值进行预排序选取最好的分割点;LightGBM通过直方图算法寻找最优的分割点LightGBM占用的内存更低,只保存特征离散化后的值,而这个值一般用8位整型存储就足够了,内存消耗可以降低为原来的1/8LightGBM直接支持类别特征决策树生长策略不同XGBoost采用的是带深度限制的level-wise生长策略。level-wise过一次数据可以能够同时分裂同一层的叶子,容易进行多线程优化,不容易过拟合;但不加区分的对待同一层叶子,带来了很多没必要的开销(实际上很多叶子的分裂增益较低,没必要进行搜索和分裂)LightGBM采用leaf-wise生长策略,每次从当前所有叶子中找到分裂增益最大(数据量最大)的一个叶子,进行分裂,如此循环;但会生长出比较深的决策树,产生过拟合(因此LightGBM在leaf-wise之上增加了一个最大深度的限制,在保证高效率的同时防止过拟合)xgBoost、GBDT的区别传统GBDT以CART作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数,训练速度更快。xgboost在代价函数里加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和。防止过拟合Shrinkage(缩减),相当于学习速率(xgboost中的eta)。xgboost在进行完一次迭代后,会将叶子节点的权重乘上该系数,主要是为了削弱每棵树的影响,让后面有更大的学习空间。列抽样(column subsampling)。xgboost借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算,这也是xgboost异于传统gbdt的一个特性。对缺失值的处理。对于特征的值有缺失的样本,xgboost可以自动学习出它的分裂方向;传统的GBDT没有设计对缺失值进行处理xgboost工具支持并行。GBDT属于串行。GBDT是机器学习算法,XGBoost是该算法的工程实现。341xgBoost的block结构在树生成过程中,最耗时的一个步骤就是在每次寻找最佳分裂点时都需要对特征的值进行排序。而 XGBoost 在训练之前会根据特征对数据进行排序,然后保存到块结构中,并在每个块结构中都采用了稀疏矩阵存储格式(Compressed Sparse Columns Format,CSC)进行存储,后面的训练过程中会重复地使用块结构,可以大大减小计算量。作者提出通过按特征进行分块并排序,在块里面保存排序后的特征值及对应样本的引用,以便于获取样本的一阶、二阶导数值。具体方式如图:通过顺序访问排序后的块遍历样本特征的特征值,方便进行切分点的查找。此外分块存储后多个特征之间互不干涉,可以使用多线程同时对不同的特征进行切分点查找,即特征的并行化处理。在对节点进行分裂时需要选择增益最大的特征作为分裂,这时各个特征的增益计算可以同时进行,这也是 XGBoost 能够实现分布式或者多线程计算的原因。342XGBoost的优缺点精度更高:GBDT 只用到一阶泰勒展开,而 XGBoost 对损失函数进行了二阶泰勒展开。XGBoost 引入二阶导一方面是为了增加精度,另一方面也是为了能够自定义损失函数,二阶泰勒展开可以近似大量损失函数;灵活性更强:GBDT 以 CART 作为基分类器,XGBoost 不仅支持 CART 还支持线性分类器,使用线性分类器的 XGBoost 相当于带 L1 和 L2 正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。此外,XGBoost 工具支持自定义损失函数,只需函数支持一阶和二阶求导;正则化:XGBoost 在目标函数中加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、叶子节点权重的 L2 范式。正则项降低了模型的方差,使学习出来的模型更加简单,有助于防止过拟合,这也是XGBoost优于传统GBDT的一个特性。Shrinkage(缩减):相当于学习速率。XGBoost 在进行完一次迭代后,会将叶子节点的权重乘上该系数,主要是为了削弱每棵树的影响,让后面有更大的学习空间。传统GBDT的实现也有学习速率;列抽样:XGBoost 借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算。这也是XGBoost异于传统GBDT的一个特性;缺失值处理:对于特征的值有缺失的样本,XGBoost 采用的稀疏感知算法可以自动学习出它的分裂方向;XGBoost工具支持并行:XGBoost在训练之前,预先对数据进行了排序,然后保存为block结构,后面的迭代中重复地使用这个结构,大大减小计算量。这个block结构也使得并行成为了可能,在进行节点的分裂时,需要计算每个特征的增益,最终选增益最大的那个特征去做分裂,那么各个特征的增益计算就可以开多线程进行。可并行的近似算法:树节点在进行分裂时,我们需要计算每个特征的每个分割点对应的增益,即用贪心法枚举所有可能的分割点。当数据无法一次载入内存或者在分布式情况下,贪心算法效率就会变得很低,所以XGBoost还提出了一种可并行的近似算法,用于高效地生成候选的分割点。缺点虽然利用预排序和近似算法可以降低寻找最佳分裂点的计算量,但在节点分裂过程中仍需要遍历数据集;预排序过程的空间复杂度过高,不仅需要存储特征值,还需要存储特征对应样本的梯度统计值的索引,相当于消耗了两倍的内存。343集成学习 Bagging BoostingBagging 是 bootstrap aggregation的缩写。bagging对于数据集进行bootstrap取样,每个数据点有同等几率被采样,然后创建n个模型,每个模型进行m个数据采样,最后进行投票(voting)得出最后结果。Bagging 的典型应用是随机森林boosting创建了一系列预测器,或者说是学习器。前面的学习器用简单的模型去适配数据,然后分析错误。然后会给予错误预测的数据更高权重,然后用后面的学习器去修复。boosting通过把一些弱学习器串起来,组成一个强学习器。boosting的典型应用是Adaboost。344RF和GBDT的区别(1)相同点都是由多棵树组成最终的结果都是由多棵树一起决定(2)不同点组成随机森林的树可以分类树也可以是回归树,而GBDT只由回归树组成组成随机森林的树可以并行生成,而GBDT是串行生成随机森林的结果是多数表决表决的,而GBDT则是多棵树累加之和随机森林对异常值不敏感,而GBDT对异常值比较敏感随机森林是通过减少模型的方差来提高性能,而GBDT是减少模型的偏差来提高性能的随机森林不需要进行数据预处理,即特征归一化。而GBDT则需要进行特征归一化(因为涉及到梯度计算)345GBDT是否适合于处理大规模的ID特征不适合处理GBDT对于海量的id类特征,GBDT由于树的深度和树的数量限制(防止过拟合),不能有效存储;另外海量特征也会存在性能瓶颈,当GBDT的one hot特征大于100k维时,需要做分布式训练才能保证不爆内存,因此,GBDT通常配合少量的反馈CTR特征来表达,在带来一定范化能力的同时会有信息损失,对于头部资源无法有效表达。346LightGBM的直方图 排序后会比xgboost的效果差吗,为什么会基于树模型的boosting算法,很多算法比如xgboost都是用预排序(pre-sorting)算法进行特征的选择和分裂LightGBM采用HistoGram算法,其思想是将连续的浮点特征离散成k个离散值,并构造宽度为k的Histogram。然后遍历训练数据,计算每个离散值在直方图中的累计统计量。在进行特征选择时,只需要根据直方图的离散值,遍历寻找最优的分割点。所以如果LightGBM的直方图排序后,最优的分割点就变了,效果可能会比xgboost差。347xgboost正则化项和什么有关树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和。348随机森林哪两个随机2个随机(bootstrap+特征m)应用 bootstrap 法有放回地随机抽取 k个新的自助样本集(boostrap),并由此构建 k 棵分类树(ID3 、 C4.5 、 CART)样本扰动。先随机选择属性子集,个数为k,然后再从这个子集中选择一个最优属性用于划分。349bootstrap怎么做的Bootstrap是一种抽样方法,即随机抽取数据并将其放回。如一次抽取一个样本,然后放回样本集中,下次可能再抽取这个样本。350xgboost缺失值处理方法论文中关于缺失值的处理将其看与稀疏矩阵的处理看作一样。在寻找split point的时候,不会对该特征为missing的样本进行遍历统计,只对该列特征值为non-missing的样本上对应的特征值进行遍历,通过这个技巧来减少了为稀疏离散特征寻找split point的时间开销。在逻辑实现上,为了保证完备性,会分别处理将missing该特征值的样本分配到左叶子结点和右叶子结点的两种情形,计算增益后选择增益大的方向进行分裂即可。可以为缺失值或者指定的值指定分支的默认方向,这能大大提升算法的效率。如果在训练中没有缺失值而在预测中出现缺失,那么会自动将缺失值的划分方向放到右子树。更多校园招聘常见面试问题(开发、算法、编程题目)参见CSDN博客:http://t.csdn.cn/V4qbH欢迎关注、收藏、点赞后进行问题咨询及秋招建议
点赞 3
评论 1
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
02-14 21:31
门头沟学院 Java
春节了,回家好好休息过节
一年一度的春节即将开始,好消息是有多天的休息时间,坏消息是七大姑八大姨围追堵截的各种话题,会在矛盾又快乐的气氛中度过的时节。首先,放假了,可以好好休息好好吃饭。可以放下工作上的一切烦恼和问题,好好的在家休息几天,还有好多好吃的。吃的,唯有美食与爱,不可辜负。除夕,年夜饭的各种美味佳肴,吃着好吃的食物,聊聊家常。吃完了后在客厅里,瓜子、花生、苹果,各种零食堆成了小山,看着电视,聊着天。还有的打着牌,输赢不重要,重要的是那份久违的家庭氛围,温馨温暖的气氛。当然,也有各种灵魂拷问般的“关心”。吃完饭后,正捧着肚子瘫坐在沙发上,七大姑八大姨带着慈祥的微笑围拢过来,各种“关心”开始了:“在大城市混得不错...
牛友的春节生活
点赞
评论
收藏
分享
02-18 16:25
中北大学 测试开发
测试开发 - 小天才 - 二面
自我介绍在学校里面学的好的课程有哪些网络七层模型TCP/IP 四层模型为什么会有这些分层IPV4 和 IPV6 的区别数据库的各个范式,具体讲解实习经历中的工具开发部分,具体讲解这个工具的需求方是哪个部门功能测试的经历具体讲解,其中回归测试的流程如何看待大模型技术的发展大模型的原理以及可能出现信息错误的原因有哪些优点有什么缺点有什么兴趣爱好为什么对公司的这个岗位有意向薪资待遇方面有什么期望反问环节:
查看11道真题和解析
点赞
评论
收藏
分享
01-03 17:16
已编辑
门头沟学院 数据仓库
第一次感受到世界上有些人真的有优越感
直面社会的优绩主义,这也是一个很好的社会观察实验背景:我在抖音上发我秋招的投递记录分享,用的现在很火的那种电影最后致谢的形式我说我秋招前期投数开,后期投运营销售等业务岗,评论区有人先是说,双非本怎么可能有大厂面试(对,不是说配不配有大厂offer,是学院本都不配有约面大厂的资格)之后我说前期面的研发,后期拿的仓库运营中台offer,然后一群人又说,大厂所有运营岗都是牛马岗,跟研发没得比,更有甚者,直接说某夕夕运营都是水岗(听过水硕水博,第一次听水岗的,我寻思我年包虽然没发跟数据开发比,那也大约二十万了,薪资也还行吧,怎么就水了)😇😇😇😇😇
段段Steady:
优绩主义是这个世界的规则,我们不得不适应,因为我们离不开社会,但是内心要清醒,因为优绩主义等于进入鄙视链,鄙视链永无尽头,最后沦为被裹挟的没有自我的人
秋招特别不鸣谢
点赞
评论
收藏
分享
02-11 14:29
已编辑
字节跳动_QA
上班一年半
变成了坚定的图灵派(雾)
Edgestr:
这种的写代码最狠了
点赞
评论
收藏
分享
02-14 05:02
Stanford University 算法工程师
小米YU9增程SUV实车曝光,定价35万,综合续航达1000公里以上
近日,小米汽车首款增程式大型SUV YU9(内部代号“昆仑”)的实车图与设计资料在网络上流传。据悉,该车型定位高端家庭市场,预计售价35万元起,计划于2026年内正式发布,或将直接对标国内其他9系热门车型。从曝光的图片来看,YU9延续了小米设计语言。前脸采用封闭式格栅与贯穿式灯带,同样配置了车顶激光雷达模块。车身尺寸方面,其长度超5.2米,轴距接近3.2米,提供6座与7座布局。动力系统上,YU9搭载1.5T增程器与大容量电池组,纯电续航里程或将突破200公里,综合续航可达1000公里以上,支持800V高压快充,充电12分钟即可补充约300公里续航。智能化方面,新车将配备多屏联动座舱系统、后排娱...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
谢谢这位朋友
233
2
...
需要再找一个实习吗
147
3
...
得力嵌入式工程师 一面 面经
131
4
...
大家过年会给mentor拜年吗?
111
5
...
焦虑,内耗,该如何缓解?
98
6
...
26届前端简历求分析
90
7
...
实习,27级应届生
72
8
...
项目文档-简历+ 新增function calling功能
68
9
...
八股战士
65
10
...
测试开发 - 小天才 - 二面
64
创作者周榜
更多
正在热议
更多
#
牛客新年AI问运
#
10748次浏览
148人参与
#
第一次面试
#
1072642次浏览
13736人参与
#
牛客AI体验站
#
17192次浏览
297人参与
#
投递几十家公司,到现在0offer,大家都一样吗
#
329165次浏览
2127人参与
#
你喜欢工作还是上学
#
89919次浏览
888人参与
#
被AI治愈的瞬间
#
91131次浏览
690人参与
#
有必要和同事成为好朋友吗?
#
1817次浏览
34人参与
#
虾皮求职进展汇总
#
378347次浏览
2795人参与
#
百度求职进展汇总
#
667699次浏览
6293人参与
#
招聘要求与实际实习内容不符怎么办
#
169538次浏览
926人参与
#
如果不上班,你会去做什么
#
29450次浏览
466人参与
#
非技术岗薪资爆料
#
491401次浏览
3047人参与
#
你找工作的时候用AI吗?
#
173822次浏览
893人参与
#
产品薪资爆料
#
158989次浏览
855人参与
#
你觉得什么岗位会被AI替代
#
41714次浏览
283人参与
#
考研失败就一定是坏事吗?
#
222581次浏览
1543人参与
#
国企vs私企,你更想去?
#
320149次浏览
2530人参与
#
我的求职精神状态
#
431914次浏览
3082人参与
#
秋招想进国企该如何准备
#
127590次浏览
620人参与
#
卷__卷不过你们,只能卷__了
#
42335次浏览
669人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务