采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,为什么预测值可以通过sigmoid函数变成分类的概率?这个值的转换具有可解释性吗?
看一下这个问题是否可以回答你的问题:https://coding.imooc.com/learn/questiondetail/46426.html
继续加油!:)
==========
这个关联是人为赋予的。我们相当于将两个类别定义成 1 和 0,使用 sigmoid 函数,将任意一个数值,都可以映射到 [0, 1] 之间。逻辑回归相当于是在说,sigmoid(theta * x) 的结果越接近 1,我们越倾向于将 x 分为 1 所代表的的这一类;sigmoid(theta * x) 的结果越接近 0,我们越倾向于将 x 分为 0 所代表的的这一类。这相当于是将 sigmoid(theta * x) 解释为将 x 分为 1 这一类的概率。
这样做背后能否找到数学依据?有一些。比如这样做满足最大似然估计的结果(我给的连接中有进一步的资料来源)。
但是,有一定的数学依据不代表 100% 的正确。这在统计学界非常常见。比如对一组数据的解读有若干种正确的统计分析方式,但他们的得到结果可能不尽相同,取哪一种?这一方面是见仁见智的,另一方面,也是和具体的领域,甚至具体的业务情况相关的。这也就是我给的链接中说的:sigmoid 函数是存在争议的。
我们是通过一系列假设,认为 sigmoid 函数可以表达概率。但它是不是一定就是那个概率?当然不一定,否则的话,1)求概率也太简单了;2)逻辑回归就是世界上最好的分类算法了。
有没有可能有比 sigmoid 更好的函数?但实际上,单纯从数学表达式的角度,sigmoid 已经足够好了。在这个领域,对这个问题的进一步探索,已经不是找到更好的一个数学函数了,因为更好的函数形式,很有可能是不能用一个统一的式子表达出来的。
实际上,很多非参数学习算法本身做的就是这件事情。比如神经网络,你可以将整个神经网络想成是一个函数,它也能求解出一个将 x 划分成 1 的概率,从而判断出将 x 划分成哪一类更好。但是,这个函数究竟是什么样子的?我们是无法用数学表达出来的。(理论也能表达出来,但是,一个 2 * 2 的神经网络对应的函数,已经复杂得可以上天了)。
老师我的问题是,为什么这个函数可以把样本算出来的预测值转变为它属于哪一类的概率,这两个为什么会有关联?
我补充在了原回答中。继续加油!:)
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.5k 19
3.5k 17
2.9k 15
1.6k 15
1.4k 14