逻辑回归


1. 逻辑回归

多元线性回归是用线性的关系来拟合一个事情的发生规律,找到这个规律的表达公式,将得到的数据带入公式以用来实现预测的目的,

习惯将这类预测未来的问题称作回归问题。 机器学习中按照目的不同可以分为两大类:回归和分类.

逻辑回归就可以用来完成分类任务.

1.1 二元分类实现方式

如果只有两种可能, 是(1) 或者 不是(0), 可以使用线性回归来拟合数据,然后设定一个阀值

如果y的结果 大于该值, 则输出为1

如果y的结果 小于该值, 则输出为0

但是如果将Tumor Size的数据值拉长, 则会导致拟合的线太直, 数据的离群值太大。

所以该分类问题如果使用该思想,有两个问题需要解决

第一, 拟合的是一条直线,如果有异常值,导致线太直,离群值过大。

第二, 如何确定阀值。

1.2 假设函数

假设函数定义如下

这个函数叫做Sigmod函数, 或者逻辑方程。

sigmod 函数使用octave 实现

function g = sigmoid(z)
%SIGMOID Compute sigmoid function
%   g = SIGMOID(z) computes the sigmoid of z.

% You need to return the following variables correctly 
g = zeros(size(z));

% ====================== YOUR CODE HERE ======================
% Instructions: Compute the sigmoid of each value of z (z can be a matrix,
%               vector or scalar).

g = 1 ./ (1+exp(-z));

% =============================================================

end

分别使用如下值进行测试

octave:16> sigmoid(100)
ans =  1
octave:17> sigmoid(-100) ans = 3.7201e-44 octave:18> sigmoid(0) ans = 0.50000

该函数的输出值使用图表表示如下

可以看出,此时,0 <= h(theta)(x) <= 1

1.3 决策边界

sigmod 公式如下

根据sigmod函数性质, 可以有如下结论

如果 g(z)  >= 0 , 则对于二元分类,预测输出值为1

如果g(z) < 0, 预测输出值为0

第一个例子

第二个例子, 非线性

1.4 损失函数

问题如下

损失函数如下

当y = 1 时, J(theta) 与 h(theta)(x) 之间关系如下图

当y=0时, 关系如下

有如下的函数性质

其中损失函数可以写成下面的形式

向量形式

现在目标是要最小化 J(theta)

1.5 梯度下降

继续变换形式

与线性回归算法一样。

向量化形式

算法优化

共轭梯度法(Conjugate Gradient

BFGS

L-BFGS

1.6 一对多的分类

当输出结果不是0,1两个, 而是由多个组成的

有如下方程

选择概率最大的那个值。

2. 过度拟合(Overfitting)

欠拟合(underfitting), 是表示学习的样本特征太少, 无法很好的满足数据。

过度拟合(overfitting), 表示特征太多,导致无法很好预测新的数据。

解决方案:

1. 减少特征值

 - 手动选择需要保留哪些特征值

 - 使用模型选择算法自动选取

2. 规则化

 - 保留所有特征

正则化思想如下

函数表达式如下

lambda 是一个规则化参数

如果lambda 太大, 可能会导致欠拟合

规则化线性回归的梯度下降算法

该式进行变换后, 表示如下

规则化线性回归正规方程解

规则化逻辑回归的梯度下降算法

逻辑回归规则化方程

梯度下降



相关