前面的博客咱们介绍了监督学习里回归的一种——线性回归,今天咱们讲一下另外一种很重要的回归——逻辑回归(Logistic Regression)。
逻辑回归(Logistic Regression)
之前咱们说的线性回归,举的例子是房价的预测的例子,手头有房子大小和对应房价的数据,然后通过模型拟合数据,最后输出预测的房价,100万,110万等。线性回归输出的值都是连续的,现实中还有一种情况,我们手头有一组患有肿瘤病人的数据,包括肿瘤的大小(cm)和对应的这个肿瘤是恶性的还是良性的(0,1)。我们的任务就是想通过学习这份数据,然后根据肿瘤的大小来预测这个肿瘤是恶性的还是良性的。和线性回归的不同,Logistic回归的最终预测的结果只有两种,要么良性(0),要么恶性(1)。怎么样才能将数据映射到0和1上呢?
大家有没有想过通过函数映射的方法,把数据拟合的结果映射到0或1上?如果能想到这一步,那基本上已经一只脚跨进logistic回归的大门了,logistic回归就是通过函数的映射,将拟合结果映射到0和1上,那么问题来了,怎么映射?通过什么函数映射???
因为咱们要把拟合结果映射到0,1上来,那咱们的映射函数的取值应该只有0和1两种,首先大家想到的是不是阶跃函数?
因为阶跃函数最简单,输出的值只有0和1,然而,阶跃函数在跳跃点上从0瞬间跳跃到1,这个瞬间跳跃的过程有时会比较难处理。
这个时候咱们先介绍一个函数给大家认识,这个函数名字为sigmond函数,和阶跃函数类似,但是函数模型较平滑,话不多说,先来看看这个函数表达式:
函数图像如下所示:
从sigmond的函数图可以看出,sigmond函数和阶跃函数很相似。因此为了实现Logistic回归,我们可以在已有数据的每个特征值上都乘以一个回归系数,然后把所有的值相加,将这个总和代入sigmond函数,进而得到一个范围在0~1之间的数值。任何大于0.5的数据被映射为1,小于0.5的数据被映射为0。(参考《机器学习实战》)
刚说的一段话用公式表达会更加清晰,Sigmond的输入值为 “z”,通过学习线性回归咱们知道可以通过下式来做线性拟合,这里 ω0 和前面线性回归里的 θ0 含义相同,均代表线性拟合里的回归系数,
如果采用向量的描述方法,上式可以