【问题标题】:What is the Search/Prediction Time Complexity of Logistic Regression?Logistic 回归的搜索/预测时间复杂度是多少?
【发布时间】:2019-06-11 19:18:42
【问题描述】:

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

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

【问题讨论】:

  • 抱歉这是我的第一个问题
  • 复杂性不是针对问题(即逻辑回归)定义的,而是针对解决问题的特定算法;见quora.com/…
  • @desertnaut 这种复杂性是用于训练而不是预测
  • 公平点;所以,对于k 特征,它是乘以k 对数字(即模型系数 X 特征)然后将它们相加,再加上偏置项(每个样本)的一次加法运算的复杂性,对吧? (不过,不清楚您所说的“搜索”是什么意思......)
  • 我添加了一篇文章,可能会澄清我需要什么,所以在这篇文章中,他们展示了训练时间复杂度和预测/搜索时间复杂度,这意味着预测新点 x 的 y 复杂度是多少.

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


【解决方案1】:

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

  • f - 特征数(+1 因为有偏差)。每个特征乘以它的权重(f 操作,+1 用于偏差)。另一个f + 1 操作用于对所有这些求和(获得预测)。使用梯度方法提高相同操作次数的权重计数,因此我们总共得到 4* (f+1)(两个用于前向传递,两个用于后向传递),这就是 O(f+1).
  • c - 逻辑回归中的类数(可能的输出)。对于二元分类,它是一个,所以这个术语被取消了。每个类都有其对应的一组权重。
  • s - 数据集中的样本数量,我认为这个非常直观。
  • E - 您愿意运行梯度下降的 epoch 数(整个通过数据集)

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

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

  • f + 1 - 您只需将每个权重乘以特征值,再加上偏差,最后将所有这些相加。
  • c - 你对每个类都这样做,1 用于二元预测。

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

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

逻辑回归和线性回归在复杂性方面的区别:激活函数。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 2016-12-12
    • 2015-11-29
    • 2019-05-08
    • 1970-01-01
    相关资源
    最近更新 更多