python训练模型、如何得到模型训练总时长_各个常用机器学习模型的训练时间比较...

知乎视频​www.zhihu.com

越来越觉得模型的速度非常重要, 一般来说, 模型的性能瓶颈在"训练"这个阶段. 因此, 只要比较训练时间就可以了.

很多"精妙"的模型, 因为速度慢的原因, 难以应用, 或者使用成本非常高.

先给出结果, 计算过程在下文中详细说明, 测试的模型以scikit-learn的模型为主, 还包括lightgbm里面的模型, 读者如果对其他模型有兴趣的话, 可以使用本文给出的测试程序自行测试.

按照运行时间从小到大排序:

警告说明: 这些数据是在随机数据集下, 模型的默认超参下, 有限的样本量范围, 有限的特征数量范围下的测试的结果,仅供参考, 如果改变条件, 结果很可能发生变化. 建议具体问题具体分析

NearestCentroid速度最快, 很正常, 因为训练阶段就只是求类内中心点.

SGD系列排名靠前

"Kernel Approximation + SGD"比SVR, SVC快一个数量级或者两个数量级.

更重要的是, 随着样本量的增大, 前者的优势会更加明显, 因为前者的时间复杂度是O(n), 而后者的时间复杂度是O(n^2)

LinearSVC, LinearSVR排名处在中间位置

排名靠后的主要是: tree-based模型, 神经网络, 高斯过程模型, 非线性SVM

为什么RandomForestRegressor最慢?

因为RandomForestRegressor默认下, 是充分生长的, 而且每次分裂的时候, 考虑所有的特征.

而RandomForestClassifier默认下, 也是充分生长的, 但是每次分裂的时候, 只考虑特征总数的平方根个特征.

当心那些

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值