天天看点

机器学习-逻辑回归-分类

监督学习中另一个问题为分类问题,常见的分类问题例子有

邮件是否是垃圾邮件,0表示垃圾邮件,1表示正常邮件

在线交易是否会欺骗用户,0表示会欺骗,1表示不会

患肿瘤患者是良性还是恶性,0表示恶性,1表示良性

这些问题,可以归之于<code>二分类问题</code>,y表示因变量,取值0和1,可以定义如下

机器学习-逻辑回归-分类

其中0表示负例,1表示正例 同理,对于多分类问题来说,因变量y的值可以取{0,1,2,3 ... n}

我们先从<code>二分类问题</code>入手,理解什么是逻辑回归模型

逻辑回归(Logistic Regression)是一种用于解决二分类问题(0 or 1)的机器学习模型 逻辑回归(Logistic Regression)与线性回归(Linear Regression)都是一种广义线性模型(generalized linear model)逻辑回归假设因变量y 服从<code>伯努利分布</code>,而线性回归假设因变量y服从<code>高斯分布</code>

逻辑回归虽然带有"回归"2个,但是却是一个实实在在的分类算法

线性回归模型中,假设函数h(x)预测的值是连续的,预测值在<code>[负无穷, 正无穷]</code>

对于二分类问题来说最终的预测值是{0,1}离散集合,我们需要找出一个预测函数模型,使其值的输出在 [0, 1] 之间。然后我们选择一个阀值d,比如 0.5 ,如果预测值算出来大于 0.5 就认为分类结果为1,反之则认为分类结果为0.

因此我们引入了函数g, 同时假设逻辑回归模型的假设函数h(x)如下

机器学习-逻辑回归-分类

这个函数称为Sigmoid函数,也称为逻辑函数(Logistic function) 函数曲线如下

机器学习-逻辑回归-分类

线性回归模型假设函数h(x) = (theta^T * x), (theta^T * x)值域在<code>[负无穷, 正无穷]</code>,函数h(x) = g(theta^T * x)预测值在[0, 1]之间

我们可以设置一个阈值d,当h(x) &lt; d的时候预测分类结果为0,当h(x) &gt;= d的时候预测分类结果为1

假设阀值d = 0.5

当h(x) &gt;= 0.5的时候,则预测分类结果为1

当h(x) &lt; 0.5的时候,则预测分类结果为0

因此函数h(x)的输出可以解释为<code>分类结果为1时的概率</code>

机器学习-逻辑回归-分类

假设阀值d=0.5, 当h(x) &gt;= 0.5的时候,预测分类结果为1

从逻辑函数的曲线图可知,对于函数h(x) = g(theta^T * x) &gt;= 0.5 等价于theta^T * x &gt;= 0

我们称 <code>theta^T * x = 0</code> 是模型的<code>决策边界</code>,大于0的时候预测分类结果为1,小于0的时候预测分类结果为0.

举个例子 假设h(x) = g(theta0 + theta1x1 + theta2x2),theta0, theta1, theta2 分别取-3, 1, 1 由上可知,决策边界 <code>-3 + x1 + x2 = 0</code> 是一个线性的方程,如下图所示

机器学习-逻辑回归-分类

当h(x)更加复杂的时候,决策边界可能是一个非线性的方程

机器学习-逻辑回归-分类
机器学习-逻辑回归-分类

<a target="_blank" href="https://camo.githubusercontent.com/43fbb864ea60f91f7a52e3e677eab241a8ad198d/687474703a2f2f35326f70656e636f757273652e636f6d2f3f71613d626c6f622671615f626c6f6269643d3134383534353535333937373334303537343639"></a>

继续阅读