如何在 sklearn 逻辑回归中使用 tanh 而不是 sigmoid

How to use tanh instead of sigmoid in sklearn logistic regression

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

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

如果我不能实现逻辑回归,将标签从 {-1,1} 转换为 -> {0, 1} 会提高带有 sigmoid 激活函数的逻辑回归的性能吗?

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

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

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

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

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

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

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