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)

目录
相关文章
|
3月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
192 6
|
1月前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
260 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
1月前
|
机器学习/深度学习 算法 网络安全
CCS 2024:如何严格衡量机器学习算法的隐私泄露? ETH有了新发现
在2024年CCS会议上,苏黎世联邦理工学院的研究人员提出,当前对机器学习隐私保护措施的评估可能存在严重误导。研究通过LiRA攻击评估了五种经验性隐私保护措施(HAMP、RelaxLoss、SELENA、DFKD和SSL),发现现有方法忽视最脆弱数据点、使用较弱攻击且未与实际差分隐私基线比较。结果表明这些措施在更强攻击下表现不佳,而强大的差分隐私基线则提供了更好的隐私-效用权衡。
52 14
|
2月前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
90 2
|
3月前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
77 1
|
3月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
3月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
179 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
4月前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
3月前
|
机器学习/深度学习 算法
深入探索机器学习中的决策树算法
深入探索机器学习中的决策树算法
56 0
|
3月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
56 0

热门文章

最新文章