从Linear regression中学习的gradient decent方法仍然可以应用到logistic regression.

分类(logistic regression)

之所以这里分类翻译成logistic regression是由于历史原因,究其原因是因为在分类方法中用到的sigmoid函数, 因为simgoid函数有一个别名, logistic函数。

分类问题,最简单的形式就是一堆数据,那些是这一类的,那些不是。在数学上简单描述一下可以认为

1. 是本类的:输出为1
2. 非本类的:输出为0

这种描述有个专门的术语叫 Binary classification,与之对应的是Multiple classification. 顾名思义,就是输出可以有多种,也就是可以把数据分成好多类,不单单是两类了。

Binary classification

他的描述可以用数学方式表述为

也就是说如果对这类问题设计算法,我们期望我们的系统输出结果在(0, 1)之间,然后配合相应的阈值,确定输出属于本类,或不属于本类。

数学上有一个经典的函数可以把输入映射到[0, 1]区间,sigmoid function, 它也被称为“logistic function”.

Sigmoid function:

如果你有兴趣,可以通过以下的matlab代码看一下这个函数长什么样子

z = -1000 : 1000;
g = 1 / (1 + exp(-z));
plot(z, g);

有了sigmoid函数,我们可以得到我们的

hypothesis function

h(theta, x) = g(theta' * x)
z = theta' * x
g(z) =  1 / (1 + exp(-z))

根据sigmoid函数,可以得到以下的规律

  • 当z >= 0时,g >= 0.5,可以认为输出为1
  • 当z < 0时,g < 0.5, 可以认为输出为0

根据这个规律我们可以找到分类问题的边界,decision boundary

Decision boundary

根据sigmoid函数得到的规律,并且z = theta’ * x,可以得到

  • 当theta’ * x >=0时,y = 1
  • 当theta’ * x < 时,y = 0

这样就可以得到两类的边界,即

y = theta' * x

** 这里注意的是,这个边界不一定就是一个直线,虽然是用直线的表达式表述的,但是不要忘了x可以是polynomial. **