机器学习分类器 big-O 或复杂性

机器算法验证 机器学习 分类 多重比较 算法 时间复杂度
2022-02-12 12:19:57

为了评估新分类器算法的性能,我试图比较准确性和复杂性(训练和分类中的大 O)。机器学习:评论中,我得到了一个完整的监督分类器列表,还有算法之间的准确度表,以及来自UCI 数据存储库的 44 个测试问题。但是,对于常见的分类器,我找不到带有 big-O 的评论、论文或网站,例如:

  • C4.5
  • RIPPER(我认为这可能是不可能的,但谁知道)
  • 具有反向传播的 ANN
  • 朴素贝叶斯
  • K-NN
  • 支持向量机

如果有人对这些分类器有任何表达,那将非常有用,谢谢。

1个回答

N= 训练样本的数量,d= 特征的维度和c=类数。

然后训练有复杂性:

  1. 朴素贝叶斯是O(Nd),它需要做的就是计算每个特征值的频率di对于每个班级。
  2. k-NN 在O(1)(甚至有人说不存在,但是训练的空间复杂度是O(Nd)因为您需要存储数据,这也需要时间)。
  3. 非线性非近似 SVM 是O(N2)或者O(N3)取决于内核。你可以得到一个O(N3)向下O(N2.3)有一些技巧。
  4. 近似 SVM 是O(NR)其中 R 是迭代次数。

测试复杂性:

  1. 朴素贝叶斯在O(cd)因为你必须检索d每个特征值c类。
  2. k-NN 在O(Nd)因为您必须将测试点与数据库中的每个数据点进行比较。

资料来源:“核心向量机:超大型数据集上的快速 SVM 训练”- http://machinelearning.wustl.edu/mlpapers/paper_files/TsangKC05.pdf

对不起,我不知道其他人。