时间复杂度可以看作是机器学习算法针对输入大小执行速度的快慢的度量。时间复杂度总是相对于某些输入大小(例如n)给出的。
空间复杂度可以看作是执行机器学习算法所需的额外内存量。像时间复杂度一样,它也针对某些输入大小(n)给出。
机器学习算法/机器学习模型的复杂性通常使用大O表示法表示,大O表示法定义了算法的上限,它仅从上方限制函数。
大O表示法:算法的时间复杂度通常用大O符号表述,定义为T[n] = O(f(n))。称函数T(n)以f(n)为界或者称T(n)受限于f(n)。 如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n)。T(n)称为这一算法的“时间复杂度”。当输入量n逐渐加大时,时间复杂度的极限情形称为算法的“渐近时间复杂度”。
下图显示了算法复杂性的不同情况:
![c3b02c05daeea22e9920f67fe9bc5988.png](https://img-blog.csdnimg.cn/img_convert/c3b02c05daeea22e9920f67fe9bc5988.png)
为了写出计算复杂度,我们假设:
n =训练示例数,d =数据维数,k =邻居数
k最近邻算法的复杂度
训练时间复杂度 = O(knd)
遍历每个训练观测值,并计算机器学习训练集观测值和新观测值之间的距离 d。
时间相对于实例数(n)和维数(d)是线性的。
空间复杂度 = O(nd)
K最近