【问题标题】:How to use tanh instead of sigmoid in sklearn logistic regression如何在sklearn逻辑回归中使用tanh而不是sigmoid
【发布时间】:2021-05-10 07:49:27
【问题描述】:

有没有办法用 tanh 运行 sklearn 的逻辑回归?

我知道标签为 {-1,1} 时 tanh 更好,而标签为 {0,1} 时 sigmoid 更好

如果我无法实现逻辑回归,是否会从 {-1,1} 转换标签 -> {0, 1} 会通过 sigmoid 激活函数提高逻辑回归的性能?

【问题讨论】:

    标签: python machine-learning logistic-regression activation-function


    【解决方案1】:

    标签为 {-1,1} 时 tanh 更好,而标签为 {0,1} 时 sigmoid 更好。

    最后,模型不知道标签及其含义。它只是学习二进制分类的概率分布。 tanh(x) 将输入映射到区间 [-1, 1]sigmoid(x) 将输入映射到区间 [0, 1]。您所做的基本上是,您将其视为概率并说,如果输出大于 0.5,则它属于 1 类,否则属于 0。(在 sigmoid 的情况下)

    所以,是的,您可以将标签 {-1,1} 转换为 {0,1},甚至转换为 {9,10}

    【讨论】:

    • 谢谢!如果我使用带有 {-1,1} 的 sigmoid,带有 sigmoid 的逻辑回归会将输入映射到 {0,1},然后包含额外的映射步骤 {0:-1, 1:1}?
    【解决方案2】:

    再想一想逻辑回归在做什么:逻辑回归对概率进行建模,而概率的范围仅在 0 到 1 之间。

    逻辑回归与其他 ML 分类模型(例如 SVM 或基于树的模型)略有不同。其他人尝试直接找到决策边界,而逻辑回归实际上是对概率进行建模,然后使用可以是 0 到 1 之间的任意数字的阈值来进行最终分类。

    实际上,您可以将 sigmoid 函数替换为任何数学函数,将数字转换为 0 到 1 的范围。例如正态分布的 CDF 或互补对数对数。

    如果您将 sigmoid 更改为 tanh,则该回归将不再是“逻辑回归”,因为您没有对概率进行建模。

    【讨论】:

      猜你喜欢
      • 2018-01-20
      • 2015-12-19
      • 2018-10-30
      • 1970-01-01
      • 2016-08-14
      • 2015-05-04
      • 2016-03-06
      • 2014-01-20
      • 2015-08-10
      相关资源
      最近更新 更多