LogisticRegression / 逻辑斯特回归
Logistic回归解决的是当预测的值为两类bool的问题,比如邮件是否是垃圾、pv是否作弊等;那先的看看两类问题用之前的线性回归能有啥问题;
如上两图,左边预测回归的是连续实数,趋势是单调的;
而右边的预测的是bool值,这是应该叫做分类变量,如果依然用线性回归,结果如y1,看得出,由于没有单调的趋势,因此用单调的线性分类时,会导致如圈中的1被分为0;那有没有一个假设函数,能不能cover这种情况,有。如y2一样的函数,称为logistic函数,较好的解决这个问题,也叫sigmoid函数,图像很漂亮,其函数表达式为:
z->正无穷,h收敛1;z->负无穷,h收敛0;
通常将0.5做为分类阈值,即z >0,y -> 1, z < 0, y -> 0;
另外,这个h的范围是[0,1],其值可以认为是概率probability,这个使得输出值有意义的,另外是条件概率,即z的条件下,y=1的概率,用的时候可以根据对实际准招的需求,适当调整分类阈值,默认是0.5;
DecisionBoundary / 判决边界
啥时判决边界,因为是分类问题,那类与类之间就有一个相对最好的分界,如下图:
红叉和篮圈这两类分界区间中间的那条线就称为判决边界,说白了就是假设函数h(z)的z,判决边界就是h=0.5处;
这是线性分类,如上图的h为:
根据logistic函数的特点,x>0,h->1,y=1;x<=0,h->0,y=0;
对于非线性问题,如下图:
蓝色圆圈的即为判决边界h:
因此,logistic对非线性问题和线性问题都能cover,关键是看判决边界怎么选取,只要是能表达为判决边界z>0和<0分别各属于不同的类,就可以用logistic回归-- 一种分类的回归;
CostFunction/ 代价函数
选好了判别边界,选定了logistic回归,那下面看怎么选取参数 。
根据之前线性回归的代价函数如下:
和线性回归中假设函数是线性的不同,这里是logistic,会导致J不再是碗状的凹函数(习惯叫法),
如下图中有很多的局部最优点,之前的梯度下降法就不使用了,那么需要构造一个碗状的凹函数;
Logistic的代价函数如下:
当y=1时,若h=1,h-y=0;h-y无穷;当y=0时,若h=1,h-y无穷,h=0,h-y=0;