page contents
Nen
Nen - 程序员

性别: 天津 - 天津市 注册于 2021-06-23

向TA求助
2850金币数
43180 经验值
1个粉丝
主页被访问 6231 次

3096 个回答

0 赞同

XGBOOST的并行化是如何实现的?

xgboost的并行不是在tree粒度上的并行,xgboost也是一次迭代完才能进行下一次迭代(第t次迭代的损失函数包含了第t-1次迭代的预测值),它的并行处理是在特征粒度上的,在决策树的学习中首先要对特征的值进行排序,然后找出最佳的分割点,xgboost在训练之前,就预先对数据做了排序, 然后保存为block结构,后面的迭代中重复...

回答于 2021-09-22 15:16

0 赞同

XGBOOST采样时有放回的还是无放回的?

xgboost属于boosting方法的一种,所以采样时样本是不放回的,因而每轮计算样本不重复,另外,xgboost支持子采样,每轮计算可以不使用全部的样本,以减少过拟合。另外一点是xgboost还支持列采样,每轮计算按百分比随机抽取一部分特征进行训练,既可以提高速度又能减少过拟合。

回答于 2021-09-22 15:15

0 赞同

XGBOOST的调参步骤是怎样的?

PS:这里使用Gridsearch cv来穷举检索最佳的参数,如果时间允许,可以通过设置步数先粗调,再细调。 保持learning rate和其他booster相关的参数不变,调节和estimators的参数。learing_rate可设为0.1, max_depth设为4-6之间,min_child_weight设为1,subsample和colsample_bytree设为0.8,其他的参数都设为默认值即可。...

回答于 2021-09-22 15:15

0 赞同

XGBOOST特征重要性的输出原理?

xgboost是用get_score方法输出特征重要性的,其中importance_type*参数*支持三种特征重要性的计算方法: importance_type*=*weight(默认值),使用特征在所有树中作为划分属性的次数。 importance_type*=*gain,使用特征在作为划分属性时loss平均的降低量。 importance_type*=*cover,使用特征在作为划分属性时对样本的...

回答于 2021-09-22 15:14

0 赞同

LightGBM相比XGBOOST在原理和性能上的差异?

1.速度和内存上的优化: xgboost用的是预排序(pre-sorted)的方法, 空间消耗大。这样的算法需要保存数据的特征值,还保存了特征排序的结果(例如排序后的索引,为了后续快速的计算分割点),这里需要消耗训练数据两倍的内存。 其次,时间上也有较大的开销,在遍历每一个分割点的时候,都需要进行分裂增益的计算,消耗的...

回答于 2021-09-22 15:05

0 赞同

如何提高python运行效率的方法?

使用生成器,因为可以节约大量内存 循环代码优化,避免过多重复代码的执行 核心模块用Cython PyPy等,提高效率 使用多进程、多线程、协程 多个if elif条件判断,可以把最有可能先发生的条件放到前面写,这样可以减少程序判断的次数,提高效率

回答于 2021-09-22 14:56

0 赞同

分别从前端、后端、数据库阐述web项目的性能优化

这是一个非常开放的题目,考察的是你的工作经验,所以,回答的关键不在于有多深入,而在于你知识范围有多广泛,首先需要指明不存在一种方法可以立竿见影的提升web项目的性能,提升性能,首先要定位性能的瓶颈在哪里。 你能说出这个观点,就足以证明,你是一个能抓住问题要点的人,那么接下来,你得谈一谈怎么样定位系统性...

回答于 2021-09-22 14:54

0 赞同

简述多线程、多进程、协程?

1、进程:一个运行的程序(代码)就是一个进程,没有运行的代码叫程序,进程是系统资源分配的最小单位,进程拥有自己独立的内存空间,所以进程间数据不共享,开销大 2、线程: 调度执行的最小单位,也叫执行路径,不能独立存在,依赖进程存在一个进程至少有一个线程,叫主线程,而多个线程共享内存(数据共享,共享全局变量...

回答于 2021-09-22 14:51

0 赞同

简述with方法打开处理文件帮我们做了什么?

使用with open()的方式打开文件进行操作,如果在读或写的过程中发生了异常,with 会帮我们close文件。如果用try ... except ... finally 方式可以实现同样的效果,在finally中关闭文件。但这样写太麻烦了,不如with open 方便。 提到with ,你必须理解上下文管理器,一个对象实例实现了__enter__ 和 __exit__ 方法,那么它...

回答于 2021-09-22 14:49

0 赞同

什么是GIL?

GIL,即全局解释器锁 ,一个被广泛吐槽的技术,即便python3.9已经到来,这个GIL依然存在,而且似乎将继续存在。 为了解决多线程之间数据完整性和状态同步的问题,引入了GIL, 它可以保证多个原生线程不会并发执行 Python 字节码。 对于GIL的理解,有一点我们必须严肃的弄清楚,GIL并不是python的特性,而是实现Python解析...

回答于 2021-09-22 14:45