Machine Learning — 逻辑回归

现实生活中有很多分类问题,比如正常邮件/垃圾邮件,良性肿瘤/恶性肿瘤,识别手写字等等,这些可以用逻辑回归算法来解决。

一、二分类问题

所谓二分类问题,即结果只有两类,Yes or No,这样结果{0,1}集合来表示y的取值范围。

前面说到过,线性回归的模型是 h(x)=θ01x12x2+...,这种回归模型的取值是在整个自然数空间的,对于0,1问题,就要想办法把模型取值压缩到0~1之间,这里我们就引入一个sigmoid函数:g(z)=1/(1+e-z)

所以hθ(x)=g(θTx),它代表的意思是对于给定的x值,y取1的概率,即P(y=1|x),我们的任务就是利用已有样本数据集去寻找一组参数θ,得到概论分布函数P(y=1|x)。

分界面

对于分类问题,应该有一个分界面来区分,但是我们通过hθ(x)=g(θTx)得到的值是[0,1]之间的数值,那么我们就认为当g(θTx)>=0.5时,y=1,即概率0.5对应的是分界点,此时θTx=0。

代价函数

代价存在的意义就是求解θ,衡量模型hθ(x)与真值之间的差距,令其最小化,求得θ。

对于线性回归模型,我们用差的平方形式来表示代价函数,但是这种形式对于逻辑回归模型是不适用的,我们这里引入对数函数       

log这是一个很奇妙的函数,hθ(x)取值是[0,1],

如果y=1,代价函数为-log(hθ(x)),取值是[0,+∞)。这时若hθ(x)→0,-log(hθ(x))→+∞,即代价函数→+∞;反之,则代价函数→0。

同样的,y=0的情况下也是如此。所以对数函数形式的代价函数很好的表现了模型预测值与真值之间的差异。更进一步简化模型,可以以下函数来同时涵盖这个分段函数

Cost(hθ(x),y)=-log(hθ(x)y)-log((1-hθ(x))(1-y))

于是,对于m个样本的数据集,我们可以用以下函数来表示其代价函数平均值(即经验风险)

要得到最佳模型,就是要计算一组θ值,使得J(θ)最小,这里同样可以用梯度下降法,而且很神奇的是,这里的梯度函数和线性回归模型的形式是一样的。我特地证明了一下,感兴趣的同学点这里:Machine Learning — 逻辑回归的Gradient Descent公式推导

在Ng视频中,还介绍了计算计算代价函数最小值的高级算法,这里就不展开了。

二、多分类问题

实际上,除了Yes No分类问题之外,还有很多多分类问题,很典型的就是识别阿拉伯数字,从0-9一共有10个数字。求解的方法是类似的,只不过多一个维度。

对于二分类问题,θ是一个向量,一组数,问题只包含一个模型,最后得到的结果是一个概率值。

对于多分类问题(假设有k类),θ是一个(n+1)*k的矩阵,相当与是k个二分类问题的组合,包含k个模型,最后得到的结果是一个k维的向量,k个概率值,哪个最大就说明属于哪类。

那如何去得到这个矩阵θ呢?用循环一列一列计算。

以Ng课程中的识别手写的0-9数字为例,这里有10个分类。用像素值最为input参数,假设有m个样本,每个样本对应的y值是1-10中的某一个(这里用y=10代替y=0)。

建立这样一个循环,

for i=1 to 10

令样本中所有y=i的y为1,其余为0,这就变成了二分类问题,样本中的y非0即1

找到对应的θ向量

end

将所有向量组合成矩阵,hθ(x)得到的结果就是10*1的向量,比如说其中第三个值最大,说明模型认为手写字是3的概率最大。

时间: 2024-08-29 13:14:35

Machine Learning — 逻辑回归的相关文章

Machine Learning - 第7周

SVMs are considered by many to be the most powerful 'black box' learning algorithm, and by posing a cleverly-chosen optimization objective, one of the most widely used learning algorithms today. Support Vector Machines Large Margin Classification Opt

机器学习---逻辑回归(二)(Machine Learning Logistic Regression II)

在<机器学习---逻辑回归(一)(Machine Learning Logistic Regression I)>一文中,我们讨论了如何用逻辑回归解决二分类问题以及逻辑回归算法的本质.现在来看一下多分类的情况. 现实中相对于二分类问题,我们更常遇到的是多分类问题.多分类问题如何求解呢?有两种方式.一种是方式是修改原有模型,另一种方式是将多分类问题拆分成一个个二分类问题解决. 先来看一下第一种方式:修改原有模型.即:把二分类逻辑回归模型变为多分类逻辑回归模型. (二分类逻辑回归称为binary

Machine Learning 学习笔记 (1) —— 线性回归与逻辑回归

[总目录]http://www.cnblogs.com/tbcaaa8/p/4415055.html 1. 梯度下降法 梯度下降法是一种用来寻找函数最小值的算法.算法的思想非常简单:每次沿与当前梯度方向相反的方向走一小步,并不断重复这一过程.举例如下: [例]使用梯度下降法,求的最小值. 第一步:求解迭代格式.根据“每次沿与当前梯度方向相反的方向走一小步”的思想,可知 第二步:选择迭代的初始值.初始值一般可以随意选择,但恰当的初始值有助于提升收敛速度.本例中选择 第三步:根据迭代格式和初始值进行

Coursera《machine learning》--(6)逻辑回归

六 逻辑回归(Logistic Regression:LR) 逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就是由于这个逻辑函数,使得逻辑回归模型成为了机器学习领域一颗耀眼的明星,更是计算广告学的核心. 6.1 分类问题(Classification) 本小节开始介绍分类问题(该问题中要预测的变量y是离散值),同时,还要学习一种叫做逻辑回归的算法(Logistic regression),这是目前使用最广泛的一种算法.虽然该算法中

Machine Learning for hackers读书笔记(六)正则化:文本回归

data<-'F:\\learning\\ML_for_Hackers\\ML_for_Hackers-master\\06-Regularization\\data\\' ranks <- read.csv(file.path(data, 'oreilly.csv'),stringsAsFactors = FALSE) library('tm') documents <- data.frame(Text = ranks$Long.Desc.)row.names(documents) &

分类和逻辑回归(Classification and logistic regression),广义线性模型(Generalized Linear Models) ,生成学习算法(Generative Learning algorithms)

分类和逻辑回归(Classification and logistic regression) http://www.cnblogs.com/czdbest/p/5768467.html 广义线性模型(Generalized Linear Models) http://www.cnblogs.com/czdbest/p/5769326.html 生成学习算法(Generative Learning algorithms) http://www.cnblogs.com/czdbest/p/5771

Machine Learning 学习笔记 (4) —— 回归问题总结:广义线性模型

本系列文章允许转载,转载请保留全文! [请先阅读][说明&总目录]http://www.cnblogs.com/tbcaaa8/p/4415055.html 1. 指数分布族简介 之前的文章分别介绍了因变量服从高斯分布.伯努利分布.泊松分布.多项分布时,与之对应的回归模型,本文章将阐释这些模型的共同点,并加以推广. 首先非正式地给出指数分布族的定义: 定义 如果变量y的分布可以被表示为p(y;η)=b(y)exp(ηTT(y)-a(η))的形式(η为分布的参数),则称y服从指数分布族 萌萌哒博主

Machine Learning in Action -- 回归

机器学习问题分为分类和回归问题 回归问题,就是预测连续型数值,而不像分类问题,是预测离散的类别 至于这类问题为何称为回归regression,应该就是约定俗成,你也解释不通 比如为何logistic regression叫逻辑回归,明明解决的是分类问题,而且和逻辑没有半点关系 谈到回归,最简单的就是线性回归 用直线去拟合数据点, 我们通常用平方误差来作为目标函数,称为最小二乘(ordinary least squares),参考AndrewNG的讲义 如何解这个问题,可以用梯度下降,但其实更简单

Machine Learning 学习笔记 (3) —— 回归问题深入:泊松回归与Softmax回归

本系列文章允许转载,转载请保留全文! [总目录]http://www.cnblogs.com/tbcaaa8/p/4415055.html 1. 泊松回归 (Poisson Regression) 在生活中,经常会遇到一类问题需要对一段时间内某一小概率事件的发生次数建模,例如癌症.火灾等. 假设向量x表示引起这一事件发生的因素,向量θ表示因素的权重,则使用hθ(x)=exp(θTx)表示事件发生次数的期望.θTx位于指数位置,意味着其每增加1个单位,将导至事件发生次数的期望值翻倍. 此时,因变量