现在我们有n个样本点 其中X为向量,表示样本的特征,y表示类别,取值只为0,1代表两个类别。
我们现在需要通过训练样本点去拟合一个函数 f(x)。我们取定一个阀值 m 。然后把一个样本的特征X带入f(x)中,如果f(x)>m,那么这个样本就是1类,反之就是0类。这样我们就能够实现对新样本的分类。
那么如何通过样本去拟合这样的一个函数呢?
我们先来看一看这个函数 他的函数图像如下
发现了吗,这个函数的特征。以0.5为阀值能够非常完美的把两个类别分开。
但是我们能直接把特征 X 带入这个函数吗?显然是不行的,因为我们的特征X是一个向量。
所以我们需要对特征做一个映射。我们先来做一个线性映射,就像线性回归那样。
为每一个特征乘上一个权重 。 然后求和就得到了一个实数,从而完成了映射。
现在我们把 p(X) 当作自变量带入 h(x) 不就可以了吗 。但是现在我们改如何通过 给定的 n个样本去拟合出 最佳h(x) (也就是求出 向量W)
可以这样做。我们发现 h(x) 的取值范围是0~1。那么我们就可以把 h(x)看作是某一个样本是某一个类别的概率。例如我们有一个样本 x
把其带入 h(x)得到一个值为 0.8 。那么这就表示这个样本有0.8的概率为1类别,有0.2的概率为0类别。因为0.8>0.2,所以我们把其分到1类别。
现在我们对于任何一个样本都有 。当 y等于1时,表示样本为 1类别的概率为 h(X)。 y=0时表示,样本为0类别的概率为1-h(X)。 这个概率函数我们可以写成这样 其中 y的取值为0,1.分别代表两个类别。
有了这些我们就可以着手求出我们的目标函数。像前面的线性回归一样利用最大似然估计。让每一个样本是某一个类别的概率尽可能的去最大值。
把 中的每一个样本代入到概率函数 g(X)中。
得到似然函数
取对数得到对数似然
现在我们的目标是求 当 取最大时, 的取值.
现在又回到了优化问题求解了。
因为对这个目标函数直接求导,并令其为0.求解。不好解。
所以这里我们可以直接利用梯度上升算法(和下降时一致的),逼近最优解。
下面我们思考一个问题就是能不能像线性回归那样,我们使用高次曲线去拟合呢?
也就是前面的 p(X)不是一个一次线性组合,而是高次特征线性组合。
这个我放在下次的代码实践中用图形解释。