线性回归算法中,我们看到,在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解决分类问题的更多相关文章

  1. 使用Logistic Regression Algorithm进行多分类数字识别的Octave仿真

    所需解决的问题是,训练一个Logistic Regression系统,使之能够识别手写体数字1-10,每张图片为20px*20px的灰度图.训练样例的输入X是5000行400列的一个矩阵,每一行存储一 ...

  2. Logistic Regression Algorithm

    逻辑回归算法LR. 简介 逻辑回归是机器学习从统计学领域借鉴的另一种技术.它是二进制分类问题的首选方法(有两个类值的问题).   Logistic回归就像线性回归,目标是找到权重每个输入变量的系数值. ...

  3. 逻辑回归(Logistic Regression)二分类原理及python实现

    本文目录: 1. sigmoid function (logistic function) 2. 逻辑回归二分类模型 3. 神经网络做二分类问题 4. python实现神经网络做二分类问题 1. si ...

  4. Stanford机器学习---第三讲. 逻辑回归和过拟合问题的解决 logistic Regression & Regularization

    原文:http://blog.csdn.net/abcjennifer/article/details/7716281 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...

  5. [OpenCV] Samples 06: [ML] logistic regression

    logistic regression,这个算法只能解决简单的线性二分类,在众多的机器学习分类算法中并不出众,但它能被改进为多分类,并换了另外一个名字softmax, 这可是深度学习中响当当的分类算法 ...

  6. 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 ...

  7. Machine Learning - 第3周(Logistic Regression、Regularization)

    Logistic regression is a method for classifying data into discrete outcomes. For example, we might u ...

  8. 线性模型(3):Logistic Regression

    此笔记源于台湾大学林轩田老师<机器学习基石><机器学习技法> (一)Logistic Regression 原理 对于分类问题,假设我们想得到的结果不是(x属于某一类)这种形式 ...

  9. [OpenCV] Samples 06: logistic regression

    logistic regression,这个算法只能解决简单的线性二分类,在众多的机器学习分类算法中并不出众,但它能被改进为多分类,并换了另外一个名字softmax, 这可是深度学习中响当当的分类算法 ...

随机推荐

  1. BZOJ 1878(离散化+线段树)

    题面 传送门 分析 首先我们观察到区间范围较大,而区间个数较少,考虑离散化,将所有询问按照右端点进行排序 离散化之后研究区间颜色个数变化的规律 当我们处理到第a[i]个段时,设a[i]上一次出现的地方 ...

  2. <meta>标签中http-equiv属性的属性值X-UA-Compatible详解

    X-UA-Compatible是针对IE8新加的一个设置,对于IE8之外的浏览器是不识别的,这个区别与content="IE=7"在无论页面是否包含<!DOCTYPE> ...

  3. 【Vue】通过自定义指令回顾 v-内置指令

    Vue.js 的各种指令(Directives)更加方便我们去数据驱动 DOM,例如 v-bind.v-on.v-model.v-if.v-for.v-once 等内置指令,这些指令的职责就是当表达式 ...

  4. 利用js使图片外层盒子的高等于适应图片的高

    JS代码如下:<script> $(window).load(function(){ var width=$(window).width(); var img_1=$(".hot ...

  5. LeetCode102. 二叉树的层次遍历

    102. 二叉树的层次遍历 描述 给定一个二叉树,返回其按层次遍历的节点值. (即逐层地,从左到右访问所有节点). 示例 例如,给定二叉树: [3,9,20,null,null,15,7], 3 / ...

  6. MVC中easyui的easyui-combobox的使用

    一,如下代码,赋值 @{string json = ""; foreach (var dic in EnumCouponDic) //EnumCouponDic是一个字典类型Dic ...

  7. sqlmap POST注入

    带表单的页面: 1.sqlmap.py -u "http://mysqli/Less-11/" --forms 2.python sqlmap.py -r d:\test.txt ...

  8. 揭示编译器API

    编译器管道功能区 .NET编译器平台(“Roslyn”)通过提供一个API层,是一个传统编译器管道镜像,向你这样的消费者揭示了C#和Visual Basic编译器的代码分析. 这条管道的每一部分,现在 ...

  9. 线程中sleep和wait方法的区别

    sleep() 方法: 线程主动放弃CPU,使得线程在指定的时间内进入阻塞状态,不能得到CPU 时间,指定的时间一过,线程重新进入可执行状态.典型地,sleep()被用在等待某个资源就绪的情形:测试发 ...

  10. TOJ 4105 Lines Counting (树状数组)

    题意:给定N条线段,每条线段的两个端点L和R都是整数.然后给出M个询问,每次询问给定两个区间[L1,R1]和[L2,R2],问有多少条线段满足:L1≤L≤R1 , L2≤R≤R2 ? 题解,采用离线做 ...