用回归怎么做分类?
比如用算法,分类出垃圾邮件和正常邮件,用0代表垃圾邮件,1代表正常邮件,那么需要做的就是使预测值在[0,1]区间内,越接近哪个,就是哪一类。
之所以用0-1之间的值,是为了后面用极大似然函数求参数方便
Logistic regression
1. 怎样才能使预测值 y 在[0,1]区间内?
预测值 y 也就是假设 h(x) 的值,所以需要选定一个合适的目标函数,使得不论什么输入x,都能输出0到1之间的值。
2. 选择什么样的目标函数比较合适?
- 1 若还是采用线性回归的目标函数,由于此目标函数的值域太大,y值大于1或者小于0都没有什么意义,所以不能用线性回归。
- 2 若采用单位阶跃函数,那么值域满足了要求,但是此函数不连续,求最优值时,很多优化算法不能适用,所以也不行。
- 3 最好找到一个近似单位阶跃函数的“替代函数”,并且单调可微,是任意阶可导的凸函数。于是,我们采用逻辑回归。
逻辑回归函数公式
公式说明,自变量θx的值越大,预测值越接近1.
在这里,函数 g(z) 为,被称为logistic function 或 sigmoid function。
这是 g(z) 的函数图像
且函数g(z) 满足一个性质
3. 已经找到了合理的目标函数,采用什么方法,找到合适的参数θ?
极大似然逼近真实值
类似于线性回归,在一系列的假设下,我们可以通过极大似然函数来找到最小二乘回归。
这里,我们同样将一系列的概率假设应用到分类模型上,采用极大似然的方法来估计参数θ。
1. 我们假设正例和负例的概率分别为
合成一个公式
此公式表达的意思为,同一个样例,被判别为正例的概率是h(x),被判别为负例的概率为1-h(x) (这里也就将,为什么要使预测值在0-1之间联系起来了)
2. 那么,对于所有的样例发生的概率(所有概率相乘),有极大似然函数
此时,我们的任务就是找到最好的参数θ,使这个函数能够最大化,也就是最能够正确预测出所有样例的正负例。
采用log
采用梯度下降的方法,优化目标函数,找到参数θ。
3.采用随机梯度下降的方法来更新参数θ
注意,尽管这里的公式和前面线性回归时采用梯度下降的公式一样,但是其中的假设函数h(x) 却是完全不一样的了。
至此,可以利用逻辑回归,进行分类了。
还要注意的一点是,线性回归,逻辑回归中,都是在假设出概率的基础上,采用了极大似然函数,用以优化算法的。这个思想比较重要
另外,对于不同的算法和学习问题,我们采用通用的更新法则(梯度下降法),是不是有点意外? 见GLM models。