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

问题描述

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

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

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

解决方法

当标签为 {-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}

,

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

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

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

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