8个常见机器学习算法的计算复杂度总结!
Datawhale干货
来源:DeepHub IMBA,编辑:数据派THU
计算的复杂度是一个特定算法在运行时所消耗的计算资源(时间和空间)的度量。
计算复杂度又分为两类:
一、时间复杂度
时间复杂度不是测量一个算法或一段代码在某个机器或者条件下运行所花费的时间。时间复杂度一般指时间复杂性,时间复杂度是一个函数,它定性描述该算法的运行时间,允许我们在不运行它们的情况下比较不同的算法。例如,带有O(n)的算法总是比O(n²)表现得更好,因为它的增长率小于O(n²)。
二、空间复杂度
就像时间复杂度是一个函数一样,空间复杂度也是如此。从概念上讲,它与时间复杂度相同,只需将时间替换为空间即可。维基百科将空间复杂度定义为:
算法或计算机程序的空间复杂度是解决计算问题实例所需的存储空间量,以特征数量作为输入的函数。
下面我们整理了一些常见的机器学习算法的计算复杂度。
1. 线性回归
n= 训练样本数,f = 特征数
训练时间复杂度:O(f²n+f³)
预测时间复杂度:O(f)
运行时空间复杂度:O(f)
2. 逻辑回归
n= 训练样本数,f = 特征数
训练时间复杂度:O(f*n)
预测时间复杂度:O(f)
运行时空间复杂度:O(f)
3. 支持向量机
n= 训练样本数,f = 特征数,s= 支持向量的数量
训练时间复杂度:O(n²) 到 O(n³),训练时间复杂度因内核不同而不同。
预测时间复杂度:O(f) 到 O(s*f):线性核是 O(f),RBF 和多项式是 O(s*f)
运行时空间复杂度:O(s)
4. 朴素贝叶斯
n= 训练样本数,f = 特征数,c = 分类的类别数
训练时间复杂度:O(n*f*c)
预测时间复杂度:O(c*f)
运行时空间复杂度:O(c*f)
5. 决策树
n= 训练样本数,f = 特征数,d = 树的深度,p = 节点数
训练时间复杂度:O(n*log(n)*f)
预测时间复杂度:O(d)
运行时空间复杂度:O(p)
6. 随机森林
n= 训练样本数,f = 特征数,k = 树的数量,p=树中的节点数,d = 树的深度
训练时间复杂度:O(n*log(n)*f*k)
预测时间复杂度:O(d*k)
运行时空间复杂度:O(p*k)
7. K近邻
n= 训练样本数,f = 特征数,k= 近邻数
Brute:
训练时间复杂度:O(1)
预测时间复杂度:O(n*f+k*f)
运行时空间复杂度:O(n*f)
kd-tree:
训练时间复杂度:O(f*n*log(n))
预测时间复杂度:O(k*log(n))
运行时空间复杂度:O(n*f)
8. K-means 聚类
n= 训练样本数,f = 特征数,k= 簇数,i = 迭代次数
训练时间复杂度:O(n*f*k*i)
运行时空间复杂度:O(n*f+k*f)
推荐阅读:我的2022届互联网校招分享我的2021总结浅谈算法岗和开发岗的区别互联网校招研发薪资汇总
2022届互联网求职现状,金9银10快变成铜9铁10!!公众号:AI蜗牛车保持谦逊、保持自律、保持进步发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)
发送【1222】获取一份不错的leetcode刷题笔记发送【AI四大名著】获取四本经典AI电子书
8个常见机器学习算法的计算复杂度总结!相关推荐
- 常见机器学习算法思想简单梳理
转载自:http://blog.jobbole.com/74438/ 前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你 ...
- 8种常见机器学习算法比较
8种常见机器学习算法比较 2016-08-04 17:46 转载 陈圳 0条评论 雷锋网(搜索"雷锋网"公众号关注)按:本文转自刘志伟责编,在机器学习中选择一个恰当的算法十分重要, ...
- AI-常见机器学习算法介绍
分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 机器学习算法分类 1. 监督式学习 工作机制:这个算 ...
- 常见机器学习算法优缺点总结
常见机器学习算法优缺点总结 1. 回归 回归是一种用于连续型数值变量预测和建模的监督学习算法,使用案例包括房地产价格.股价走势或学生成绩等的预测. 回归任务的特征是具有数值型目标变量的标注数据集.换言 ...
- etc的常见算法_(转)8种常见机器学习算法比较
机器学习算法太多了,分类.回归.聚类.推荐.图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验.通常最开始我们都会选择大家普遍认同的算法,诸如SV ...
- (转)8种常见机器学习算法比较
机器学习算法太多了,分类.回归.聚类.推荐.图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验.通常最开始我们都会选择大家普遍认同的算法,诸如SV ...
- 从损失函数的角度详解常见机器学习算法(1)
作者:章华燕 编辑:赵一帆 1.机器学习中常见的损失函数 一般来说,我们在进行机器学习任务时,使用的每一个算法都有一个目标函数,算法便是对这个目标函数进行优化,特别是在分类或者回归任务中,便是使用损失 ...
- 常见机器学习算法背后的数学
来源:DeepHub IMBA 本文约2300字,建议阅读5分钟. 在本文中,我们将介绍一些机器学习算法的功能,以及在这些算法中实现的有助于学习过程的一些数学方程. 不同的机器学习算法是如何从数据中学 ...
- 常见机器学习算法分类及名称
机器学习算法 类型 缩写 全称 中文名称 分类 NN Neural Network 神经网络 Decision Tree 决策树 SVM Support Vector Machine 支持向量机 XG ...
最新文章
- MXNET学习笔记(二):模型的保存与加载
- html range关联文本框,HTML5gt;meter标签与input(type=range)标签结合制作简易范围指示器...
- 进程与线程||线程应用:异步调用||多线程与单线程
- QT的QDBusArgument类的使用
- cookie放在请求头_Web安全:你必须知道的“Cookie安全”
- 使用JBoss EAP 7的HTTP / 2
- 性质极其恶劣!针对基因编辑婴儿,怀进鹏这样说…
- 从V1到V4,让你读懂YOLO原理——深度AI科普团队
- 95-50-050-java.nio.channels-NIO-NIO之Channel(通道)
- 【CCCC】L2-019 悄悄关注 (25分),,模拟水题,STL大法好
- 动物之美计算机教案,清华大学版六年级上册信息技术教案第三课 动物之美——图像分类管理.pdf...
- 解决ubuntu10.04不能上网
- 利用ComplexHeatmap绘制热图(一)
- PHP数据库统计时间戳按天分组输出数据
- hyper-v 中 安装 Centos 7.0 设置网络 教程
- 苹果手机java设置_苹果java文件怎么打开?苹果手机安装JAVA程序的方法
- SPSS学习笔记(一)判断是否服从正态分布
- Android混淆配置(含androidx、kotlin)
- 图片清晰度差怎么修复成高清图片
- Timer 和TimerTask分析
热门文章
- 微信小程序开发:一个音乐播放器
- Android实战技巧之十六:getprop与dumpsys命令
- 阿里大鱼异步发送短信
- python mrq-python3.7 新语法,新内容
- 6.4 差异可视化-多维量法(MDS)
- TensorFlow2.4 开发 基础篇① 张量和变量 (1)
- 阻止搜索引擎抓取网站的工具_使用PHP将抓取的网站转变为搜索引擎
- 十年游戏老兵,如何开发出一款受索尼青睐的VR游戏?
- android+智能状态,谷歌推新安卓智能锁 自觉判断状态决定是否锁屏
- Poly Network被攻击事件中来自黑客的 25 段对话