Logistic Regression Algorithm解决分类问题
在线性回归算法中,我们看到,在training set中,输入矩阵X与向量y的值都是连续的。所以在二维空间中,我们可以用一条直线去模拟X与y的变化关系,寻找参数向量theta的取值。如根据房屋面积预测房价,根据日期、纬度来预测温度等等,我们称此类问题为回归(Regression)。
而本文,我们开始研究另外一种情况下的机器学习,即y值的变化为不连续的(categorical)。例如,y的取值只有0和1,我们用来表征类似:考试通过与否(pass/fail)、比赛输赢(win/lose)、是否患病(healthy/sick)等问题。这种y的取值只有2种的情形,称为2分类,当然也存在3分类、4分类、多分类的情况,但我们总要从最简单的情况开始。这样X连续变化,y值为categorical的机器学习问题,我们称为分类Classification。
其实很明显,我们不是在寻找X与y的变化关系了,而是在寻找一个决策边界(Decision Boundary),超过这个边界,我们认为取值为1的概率要大一些,反之我们会取0。
我们将Logistic Function定义为如下形式,我们可以看出,在x连续变化时,估计值h(x)始终在0,1之间。当x趋于无穷大时,h(x)=1;h(0)=1/2;x趋于负无穷时,h(x)=0。

其图形为:

由于Logistic Function的选择,使我们有了求解theta最关键的一步:将h(x)视作一种概率,从而利用最大似然估计(Maximum Likelihood Estimation)求解该问题。我们可以将h(x)的公式看做y=1的概率,则原公式可以写为:

由于y的值只可能取0或1,所以我们根据概率性质可知:

同样的,我们可以将以上两个公式合二为一成为如下形式:

接下来,我们来做参数拟合(Parameter Fitting),极大似然函数为:

对L求log得:

在数理统计中,我们在此对上式求偏导数,然后置零解方程,即可得出令似然函数最大的theta值。而在我们的Logistic Regression Algorithm中,我们需要拿到这个偏导数值(在当前theta值情况下,斜度最陡翘的方向),然后来做梯度上升(从结果上看似乎是梯度下降,但其实在我们定义J的时候加了个负号,将其隐藏了)操作。我们定义Cost Function J为:

对J of theta求导,见手稿:

带入梯度下降算法我们得到,对于每一个theta

若用向量表示,则为:

Logistic Regression Algorithm解决分类问题的更多相关文章
- 使用Logistic Regression Algorithm进行多分类数字识别的Octave仿真
所需解决的问题是,训练一个Logistic Regression系统,使之能够识别手写体数字1-10,每张图片为20px*20px的灰度图.训练样例的输入X是5000行400列的一个矩阵,每一行存储一 ...
- Logistic Regression Algorithm
逻辑回归算法LR. 简介 逻辑回归是机器学习从统计学领域借鉴的另一种技术.它是二进制分类问题的首选方法(有两个类值的问题). Logistic回归就像线性回归,目标是找到权重每个输入变量的系数值. ...
- 逻辑回归(Logistic Regression)二分类原理及python实现
本文目录: 1. sigmoid function (logistic function) 2. 逻辑回归二分类模型 3. 神经网络做二分类问题 4. python实现神经网络做二分类问题 1. si ...
- Stanford机器学习---第三讲. 逻辑回归和过拟合问题的解决 logistic Regression & Regularization
原文:http://blog.csdn.net/abcjennifer/article/details/7716281 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...
- [OpenCV] Samples 06: [ML] logistic regression
logistic regression,这个算法只能解决简单的线性二分类,在众多的机器学习分类算法中并不出众,但它能被改进为多分类,并换了另外一个名字softmax, 这可是深度学习中响当当的分类算法 ...
- Logistic Regression vs Decision Trees vs SVM: Part II
This is the 2nd part of the series. Read the first part here: Logistic Regression Vs Decision Trees ...
- Machine Learning - 第3周(Logistic Regression、Regularization)
Logistic regression is a method for classifying data into discrete outcomes. For example, we might u ...
- 线性模型(3):Logistic Regression
此笔记源于台湾大学林轩田老师<机器学习基石><机器学习技法> (一)Logistic Regression 原理 对于分类问题,假设我们想得到的结果不是(x属于某一类)这种形式 ...
- [OpenCV] Samples 06: logistic regression
logistic regression,这个算法只能解决简单的线性二分类,在众多的机器学习分类算法中并不出众,但它能被改进为多分类,并换了另外一个名字softmax, 这可是深度学习中响当当的分类算法 ...
随机推荐
- BZOJ 1875(DP+矩阵快速幂)
题面 传送门 分析 容易想到根据点来dp,设dp[i][j]表示到i点路径长度为j的方案数 状态转移方程为dp[i][k]=∑(i,j)∈Edp[j][k−1]" role="pr ...
- 引入maven以外的jar包
这里有2个案例,需要手动发出Maven命令包括一个 jar 到 Maven 的本地资源库. 要使用的 jar 不存在于 Maven 的中心储存库中. 您创建了一个自定义的 jar ,而另一个 Mave ...
- VUE:v-for获取列表前n个数据、中间范围数据、末尾n条数据的方法
说明: 1.开发使用的UI是mintUI, 要求: 1.获取6到13之间的数据:items.slice(6,13) <mt-cell v-for="(item,index) in it ...
- runtime 理解笔记
runtime 简称运行时,是系统运行的一种机制,在oc中通过c语言编写一个运行系统库.考进行一些非常底层的操作(oc无法完成的). 1.利用runtime,在程序运行过程中,动态创建一个类(比如KV ...
- [转]Oracle 11g 基于CentOS7静默安装教程(无图形界面,远程安装) --有部份地方有问题
Oracle 11g 基于CentOS7静默安装教程(无图形界面,远程安装) [转载]原文地址:http://canonind.blog.51cto.com/8239025/1883066 一.安装前 ...
- “没有找到mfc100u.dll”的解决方法
现在需要安装 MindManager 2016 思维导图软件时,打开软件提示找不到 mfc100u.dll,无法执行程序.之前一直好好的,现在换电脑了安装提示这个问题,然后百度找的解决方案: 需要去微 ...
- openstack stein部署手册 7. nova-compute
# 安装程序包 yum install -y openstack-nova-compute # 变更配置文件 cd /etc/nova mv nova.conf nova.conf.org cat & ...
- 初学Java 二维数组找出最近的两个点
import java.util.Scanner; public class FindNearestPoints { public static void main(String[] args) { ...
- [CQOI2015]网络吞吐量(网络流+SPFA)
[CQOI2015]网络吞吐量 题目描述 路由是指通过计算机网络把信息从源地址传输到目的地址的活动,也是计算机网络设计中的重点和难点.网络中实现路由转发的硬件设备称为路由器.为了使数据包最快的到达目的 ...
- 简单生成随机数id的方法
近期项目中需要生成不同的id,之前都是使用UUID来实现的,现在需求是只要8位数的,也就是说用户量是有限的,暂时是不需要太多的,所以就简单的使用Set实现了这一功能. /** * 生成8位不重复随机i ...