Logistic回归的搜索/预测时间复杂度是多少?

时间:2019-01-17 14:53:05

标签: machine-learning time-complexity logistic-regression

我正在研究机器学习算法的时间复杂度,但找不到用于预测新输入的Logistic回归的时间复杂度是多少。我已经读到,对于分类是O(c * d),c表示类的数量,d表示维的数量,并且我知道对于线性回归,搜索/预测时间复杂度是O(d)。您能否解释一下Logistic回归的搜索/预测时间复杂度是多少? 预先谢谢你

其他机器学习问题的示例: https://www.thekerneltrip.com/machine/learning/computational-complexity-learning-algorithms/

1 个答案:

答案 0 :(得分:4)

基于梯度优化的逻辑回归方法的训练复杂度:O((f + 1)csE),其中:

  • f -功能数量(由于偏差,+ 1)。每个特征的乘积乘以权重(f操作,+1表示偏差)。另一个f + 1操作,用于将所有这些操作相加(获得预测)。使用梯度方法来提高相同数量操作的权重计数,因此我们总共得到 4 *(f + 1)(两个用于向前通过,两个用于向后),即 O(f + 1)
  • c -您的逻辑回归中的类数(可能的输出)。对于二进制分类,它是一个,因此该术语被抵消了。每个班级都有对应的权重集。
  • s -您数据集中的样本数量,我认为这很直观。
  • E -您愿意进行梯度下降的时期(整个数据集)

注意:这种复杂性可以根据正则化(另一种c操作)而改变,但其背后的想法是这样的。

一个样本的预测复杂度:O((f + 1)c)

  • f +1 -您只需将每个权重乘以特征值,然后添加偏差并将所有权重加在一起即可。
  • c -您为每个类别都进行此操作,对于二进制预测则为1。

许多样本的预测复杂度:O((f + 1)cs)

  • (f + 1)c -查看一个样本的复杂性
  • s -样本数量

逻辑复杂度与线性回归之间的差异:激活函数。

对于多类逻辑回归,它将为 softmax ,而线性回归(顾名思义)具有线性激活(实际上没有激活)。它不会使用大的O表示法来改变复杂性,但它是训练期间的另一个 c * f 操作(不想进一步使图片混乱),并乘以2作为反向传播。