Logistic Regression
来源:互联网 发布:饱和攻击 知乎 编辑:程序博客网 时间:2024/05/01 04:37
1. Sigmoid Function
Sigmoid Function (也叫Logistic Function)的定义如下
它的函数图像如下
从上图可以看出,Sigmoid Function的函数值介于(0, 1),当z0时,g(z)0.5; 当z0时,g(z) 0.5; 当z = 0时,g(z) = 0.5。
2. Logistic Regression
在线性回归中,我们假设
这里的输出为()。如果我们利用Sigmoid Function对它做一个归一化处理,就得到Logistic Regression
假设我们有两个类别,分别用1和0表示,当 0.5时,我们输出0;当0.5时输出1。这样,我们就使用Logistic Regression解决了一个只有两个类别的分类问题。
注意到 0.5对应的, 0.5对应的,其实就是两个类别的分界线,叫做Decision Boundary。
3. 训练模型
我们定义
它的函数图像如下
从上图可以看出,当较小时,我们倾向于选择y=0, 因为这时cost会比较小;而当较大时,我们倾向于选择y=1。这时,我们可以定义Logistic Regression的代价函数
和线性回归一样,我们仍然使用梯度下降法来求:
starts with some ;
repeats until convergence {
(Simultaneously update )
}
的部分推导过程见下图手稿
4. Regularization
和线性回归一样,Logistic Regression也可能出现overfitting的现象,我们仍然使用Regularization来解决这个问题。新的代价函数为
5. 多类别分类
上面讲的是只有两个类别的情况,如果有多个类别,如何使用Logistic Regression进行分类呢?先看一个简单的例子:
假设有3个类别C1, C2, C3,我们先训练一个针对C1的分类器,此时将C1类的样例标记为y=1,而将C2, C3类的样例都标记为y=0,于是将一个多类别的分类问题转换为一个只有两个类别的分类问题。这样得到一个针对C1的分类器,如下面左所示图
同理,针对C2、C3各训练一个分类器、。这样,对于任意的输入,分别计算、、,从中选择最大的,i即为的类别。
总结一下,当有多个(n)类别时,使用Logistic Regression进行分类的方法如下:
1. 针对每个类别训练一个分类器,计算y=i的几率(并不是概率的意思)
2. 对于新的输入,计算,计算,i即为的类别。
0 0
- logistic regression
- logistic regression
- logistic regression
- Logistic Regression
- Logistic Regression
- logistic regression
- Logistic Regression
- Logistic Regression
- logistic regression
- Logistic regression
- Logistic Regression
- Logistic Regression
- Logistic Regression
- Logistic Regression
- Logistic Regression
- logistic regression
- logistic Regression
- Logistic regression
- apache启动拒绝端口访问解决
- 【撸大湿】Storm 分布式BP神经网络(开源)
- SQL Sever 2008 安装问题
- session_set_save_handler 函数用法
- 产品设计学习积累一
- Logistic Regression
- shell学习笔记
- lua如何在vs2010中配置静态库
- 当64bit遇上8核心:高通发布Snapdragon 615
- matlab支持系统介绍
- Confluence 页面树(Page Tree)宏
- Android应用源码安卓初学者必敲基础项目
- 显示全部内容OR显示部分内容
- 好的句子