8个常见的机器学习算法的计算复杂度总结

简介: 8个常见的机器学习算法的计算复杂度总结

计算的复杂度是一个特定算法在运行时所消耗的计算资源(时间和空间的度量。

计算复杂度又分为两类:

一、时间复杂度

时间复杂度不是测量一个算法或一段代码在某个机器或者条件下运行所花费的时间。时间复杂度一般指时间复杂性,时间复杂度是一个函数,它定性描述该算法的运行时间,允许我们在不运行它们的情况下比较不同的算法。例如,带有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)

相关文章
|
8天前
|
机器学习/深度学习 数据采集 算法
数据挖掘和机器学习算法
数据挖掘和机器学习算法
|
11天前
|
机器学习/深度学习 数据采集 存储
一文读懂蒙特卡洛算法:从概率模拟到机器学习模型优化的全方位解析
蒙特卡洛方法起源于1945年科学家斯坦尼斯劳·乌拉姆对纸牌游戏中概率问题的思考,与约翰·冯·诺依曼共同奠定了该方法的理论基础。该方法通过模拟大量随机场景来近似复杂问题的解,因命名灵感源自蒙特卡洛赌场。如今,蒙特卡洛方法广泛应用于机器学习领域,尤其在超参数调优、贝叶斯滤波等方面表现出色。通过随机采样超参数空间,蒙特卡洛方法能够高效地找到优质组合,适用于处理高维度、非线性问题。本文通过实例展示了蒙特卡洛方法在估算圆周率π和优化机器学习模型中的应用,并对比了其与网格搜索方法的性能。
87 1
|
17天前
|
机器学习/深度学习 算法 数据挖掘
机器学习必知必会10大算法
机器学习必知必会10大算法
|
18天前
|
机器学习/深度学习 算法 数据挖掘
【白话机器学习】算法理论+实战之决策树
【白话机器学习】算法理论+实战之决策树
|
28天前
|
机器学习/深度学习 算法 搜索推荐
【机器学习】机器学习的基本概念、算法的工作原理、实际应用案例
机器学习是人工智能的一个分支,它使计算机能够在没有明确编程的情况下从数据中学习并改进其性能。机器学习的目标是让计算机自动学习模式和规律,从而能够对未知数据做出预测或决策。
35 2
|
1月前
|
机器学习/深度学习 数据采集 人工智能
理解并应用机器学习算法:从技术基础到实践应用
【8月更文挑战第10天】机器学习算法的应用已经深入到我们生活的方方面面,理解和掌握机器学习算法对于数据科学家、工程师乃至普通从业者来说都至关重要。通过本文的介绍,希望大家能够对机器学习有一个基本的认识,并学会如何将其应用于实际问题中。当然,机器学习是一个不断发展和演变的领域,只有不断学习和实践,才能跟上时代的步伐。
|
1月前
|
机器学习/深度学习 自然语言处理 算法
利用机器学习算法进行自动化测试
利用机器学习算法进行自动化测试
|
16天前
|
机器学习/深度学习 存储 算法
图解最常用的 10 个机器学习算法!
图解最常用的 10 个机器学习算法!
|
22天前
|
机器学习/深度学习 存储 并行计算
C语言与机器学习:K-近邻算法实现
C语言与机器学习:K-近邻算法实现
30 0
|
1月前
|
机器学习/深度学习 存储 人工智能
【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题
本文是关于2022-2023年知能科技公司机器学习算法工程师岗位的秋招笔试题,包括简答题和编程题,简答题涉及神经网络防止过拟合的方法、ReLU激活函数的使用原因以及条件概率计算,编程题包括路径行走时间计算和两车相向而行相遇时间问题。
57 2
【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题