机器学习二分类问题
看下图:先从一个简单的二分类问题开始讨论:
看名字:不要看名字是逻辑斯蒂回归( Logistic Equation),因为是将原来的假设函数经过对数处理得到一个新的假设函数,这个函数特点明显,适用于二分类问题,看名字有回归,但其实是一种分类算法,不用过于纠结

因为线性回归模型产生的预测值
是实值,于是我们需要将其转化为0/1值,最理想是单位阶跃函数,但因为其不连续,因此我们想到了逻辑斯蒂函数(也叫对数几率函数),也是一种Sigmoid函数(即形似S的函数)


然后关键求参数
一.吴恩达教授的方法:
对于线性回归模型,我们定义的代价函数是所有模型误差的平方和。理论上来说,我们也可以对逻辑回归模型沿用这个定义,但是问题在于,当我们将
带入到这样定义了的代价函数中时,我们得到的代价函数将是一个非凸函数(non-convexfunction)。
所以在这里用了一个很巧妙的方法:
大体思路:1.使用代价函数
2.利用梯度下反复迭代到收敛


接下来是对这个式子进行化简:


强大的算法和在obtave中的实现:
1.梯度下降
2.共轭梯度法
3.BFGS-拟牛顿法
4.BFGS版的升级
2.3.4都是属于复杂的算法,不建议自己编写代码去计算,直接使用就好

接下来介绍 octave 中使用 fminunc 函数的代码示例:
从下图,我们可以看到左上角是我们举的一个例子,右边的我们可以先看function,是一个返回函数值和一个参数数组的函数,options中有四个参数:GradObj on设置梯度目标参数为打开,梯度用最大的MaxIter,用100次迭代,可以自动选择学习率,就像加强版的梯度下降法,exitflag迭代成功退出返回就是1.

注意:obtave和matlab的下标是从1开始的,而不是0。

二.西瓜书中介绍的方法:
采用极大似然法来估计,即是令每个样本属于其真实标记的概率越大越好.
将其最大化式等价为最小化
最终得到的也是高阶可导连续凸函数
也可用经典的数值优化算法如梯度下降法,牛顿法等都可以得其最优解
更多推荐
所有评论(0)