Logistic回归
来源:互联网 发布:网络歌手唱的无路可退 编辑:程序博客网 时间:2024/04/29 03:55
- 最近一直在看《机器学习实战》,但是看到Logistic回归这里感觉到一头雾水,看不太懂。于是在网上找了很多这方面的文章,终于理解了这个东西,下面就把我的理解写一下。
- 更详细准确的请看这几篇:
- 【机器学习笔记1】Logistic回归总结
- 机器学习中的数学(2)-线性回归,偏差、方差权衡
似然函数
机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)
最大似然估计和最小二乘法怎么理解–知乎
回归
回归最简单的定义,就是给定一个点集,然后用一个函数去拟合这个点集,使得点集与拟合函数之间的误差最小。然后根据这个函数预测目标值,这也是回归的目的。
而回归的过程就是求这个函数的参数,当参数都得到之后,我们就得到了一个完整的回归函数,之后根据这个回归函数进行预测就是很容易的事了。
回归与分类不同之处在于分类是监督学习,它的目标变量是明确的类别,而回归是无监督学习,它的目标变量是连续型数值。
- 回归又分为线性回归和非线性回归
- 线性回归:线性回归意味着可以将输入项分别乘以一些常量(参数),再将结果加起来得到输出,即回归函数是线性函数。
- 非线性回归:非线性回归认为输出可能是输入的乘积,即回归函数不是线性函数。
Logistic回归
Logistic回归虽然名字中有回归二字,但是实际上它是一个分类方法,而且是一个二值分类(即它的输出只有两个值,分别代表两个类),而它的函数用的是Logistic函数(或称为Sigmoid函数):
对应的函数图像是一个取值在0和1之间的S型曲线(图1)。
对于线性边界,边界形式如下:
构造预测函数:
hθ(x)函数的值有特殊的含义,它表示结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率分别为:
(4)式综合起来可以写成:
取似然函数为:
对似然函数取对数为:
这里需要对似然函数进行一下说明:
要明确似然和概率的区别:
概率用于在已知一些参数的情况下,预测接下来的观测所得到的结果,而似然性则是用于在已知某些观测所得到的结果时,对有关事物的性质的参数进行估计。
比如已知箱子里有4个黑球,2个白球,现在做有放回的抽取,抽取10次,问抽到8次黑球,2次白球的概率,这就是概率;如果不知道箱子中的黑白球的比例,做有放回的抽取,抽取10次,结果抽到8次黑球,2次白球,问箱子中黑白球的比例,这就是似然。
最大似然估计,就是利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。
还是用上面的那个例子,我假设我抽到黑球的概率为p,那得出8次黑球2次白球这个结果的概率为:P(黑=8)=p^8*(1-p)^2,现在我想要得出p是多少啊,很简单,使得P(黑=8)最大的p就是我要求的结果,接下来求导的的过程就是求极值的过程啦。
在Logistic这个例子中,一个样本点(x1, x2, …, xn, y)就相当于一次抽取,所有的样本点构成训练集,即最终的事件结果,那么这个结果的概率就是(8)式,(9)式是对(8)式取对数的结果,这样做是为了简化计算,而不会影响似然函数取最大值。接下来的工作就是对(9)式求极值,从而得到参数θ的值,这是个数学问题。
由于函数沿它的梯度方向变化最快,所以我们可以沿着梯度方向移动自变量(现在的自变量就是参数θ),又因为要求似然函数的最大值,所以我们用梯度上升法求函数的极大值,在这个过程中迭代更新参数θ的值,直到满足我们的要求为止(如误差在什么范围内,迭代多少次等等)。
用梯度上升法求(9)式的最大值,可得:
这里的α为学习步长,是一个常量。
《机器学习实战》在这个地方理论上讲得比较模糊,很省略,但是代码确实是这样实现的。
- Logistic回归
- Logistic回归
- logistic回归
- Logistic 回归
- Logistic 回归
- logistic回归
- Logistic回归
- Logistic回归
- Logistic回归
- Logistic回归
- logistic回归
- Logistic回归
- logistic回归
- Logistic 回归
- logistic回归
- Logistic回归
- logistic回归
- Logistic回归
- 数据持久化-写入plist
- 344. Reverse String(将字符串倒序输出)
- 随时记录灵感——DP相关
- 快速排序的递归算法
- STL 优先队列
- Logistic回归
- SQLite数据库的增删改查
- 设计模式之单例模式
- The operation couldn’t be completed. (LaunchServicesError error 0.)
- minSdkVersion、compileSdkVersion、targetSdkVersion的区别及选择
- 编程上的那点事情儿
- phonegap cordova 环境搭建及安装
- Codeforces Round #347 (Div. 2) B. Rebus
- STM32_RTC闹钟