机器学习基础笔记 | 9 – 分类问题

定义

分类问题是一个应用很广的问题,比如邮件是不是垃圾等等

可以抽象成以下表达式

0常常代指“没有什么东西”,比如0代指良性肿瘤

1常常反之,比如代指拥有恶行肿瘤

当然,y可以取1,2,3,4,不过这就是多元分类问题了,这个话题之后再说。

引子

假设我们拥有这么一个数据集,横坐标是肿瘤大小,纵坐标判定是否是恶性的

我们当然可以用我们之前学的回归算法,直接拟合

然后利用以下逻辑去判定是否是恶性肿瘤

但是线性回归算法在特殊情况下会产生误差

比如多增加的这个样本,会让这个一元线性回归模型正确率大大降低

尽管这个样本其实很契合实际,不应该当成异常值来处理

所以线性回归其实不太适合应用在分类问题上

逻辑回归模型

我们希望我们的输出值都在(0,1)之间

因此我们对原来的回归模型做了一些修改,改成了g(h(x)),详情如下

这个g(x)在学术界有两个名字,是等价的(Sigmoid function,Logistics function)

它的图像大致是这样的

这样就解决了之前困扰我们的问题

以这个例子来解释上述逻辑回归模型的意义

对于每个输入值,输出值都表示有多少概率这个值接近于1

比如看到给定的肿瘤大小,告诉病人这是恶心肿瘤的概率

所以总结如下

该函数有一些特点

比如当z大于0时,g(z)> 0.5

所以当θTx大于0的时候,我们就预测y更可能等于1

下面的例子帮助更直观理解这个假设模型的工作原理

给出一个给定的训练集和模型

并且我们假设已经给定了参数

即θ = [-3, 1, 1] (再通俗点,把上面的式子化简成为X1+X2>3)

那么这个函数的意义就是

右上角都将被我们预测为 y = 1

这条线被称之为“决策边界”,这个决策边界是受预测的参数所影响的,跟数据集无关(目前)

再来一个例子

此时我们使我们的模型:

使θ = [-1, 0, 0, 1, 1],那么决策的函数如下所示

如果我们使用更复杂的高阶多项式

我们可以得到更复杂的决策边界

可能得到

OK,接下来就只剩下如何确定θ了

问题如下所示:

之前的线性回归我们利用了代价方程, 如下图所示

在上述方程中我们定义使模型和现状的误差最小,是通过(输出值(h(x))-实际值

y)的平凡的1/2,使这个项累加最小。

很可惜,事实证明,由于我们套用了g(x)这个函数,容易使代价函数成为一个非凸函数(这里不做证明),如下图所示

所以逻辑线性回归要用如下代价方程

这个代价函数有非常好的性质:

1.h(x),即1/[1+e^f(z)]值域为(0,1),(0,1)同时作为cost(h(x),y)的定义域

2.以拟合y=1举例,Cost(h(x),y)取-log(h(x))

3.当h(x)=1时,-log(1) = 0,h(x)=0,-log(0)趋向于正无穷

4.-log(x)在(0,1)内单调递减,不存在局部最小值,合理的用梯度下降一定能收敛到全局最小值

这样使得错误出现的概率非常小,其实有点概率论的意思了(即假设检验)

提一嘴,这个代价函数是由统计学中的极大似然法提出来的=.=

使用梯度下降

接下来我们要把这个两种情况合并成一个算法,由于y只有0与1两个值,我们可以做一点处理:

由于y只有两个值,所以通过1-y与y我们可以很轻松的消除两项中的一项,因此式子就被合并了。

接下来上梯度下降

那个导数项展开是这样的

值得一提的是,这个梯度下降和之前线性回归的梯度下降的一模一样

发表评论