二元分类
logistic模型
首先,我们需要搞清楚二元分类模型与之前的线性回归模型的区别。之前的线性回归模型是预测连续输出,对应的典型问题就是预测房价。而现在的二元分类问题是预测一个离散的输出,只关心有无,对应的典型问题就是预测有无癌症。二元分类问题只需要选取一个阈值,超过这个阈值就是
y=1
,低于这个阈值就是
y=0
。并且预测分析的输出最好是在
[0,1]
这个范围之内的,因为毕竟训练数据集中的输出也只有
0
和
1
。
根据上面分析,二元分类问题对于
hθ⃗ (x⃗ )
有一个要求:
hθ⃗ (x⃗ )∈[0,1]
而logistic函数就有这样优秀的性质。我们令
hθ⃗ (x⃗ )=g(θ⃗ Tx⃗ )
其中
g(z)=11+e−z
其实,logistic函数就是把一个连续的输出映射到
[0,1]
这个范围内
决策边界
由上面的表达式可以看出,logistic回归模型中logistic函数的输入相当带有线性回归的意味。但是这里的不同点在于,线性回归要做的是预测一个具体的输出。由于在二元分类中,我们只关心是大于还是小于某个阈值,因此logistic模型中logistic函数的输入对应的是阈值、边界的意思。这里,同样的道理,当用直线明显难以区分开两个分类式,需要曲线的时候就要引入高次项。后面自己会做一个图补上
代价函数
由于logistic函数的存在,继续使用训练数据集误差的平方和做代价函数会带来非凸的问题。因此我们需要重新定义代价函数
J(θ)=1m∑i=1mCost(hθ⃗ (x⃗ (i)),y(i))
Cost(hθ⃗ (x⃗ (i)),y(i))=−y(i)log(hθ⃗ (x⃗ (i)))−(1−y(i))log(1−hθ⃗ (x⃗ (i)))
补上代价函数的图 从图上可以看到,判错的代价是非常高的。
求解的过程依然是梯度下降。
∂∂θjJ(θ)=1m∑i=1m[hθ⃗ (x⃗ (i))−y(i)]x(i)j
这里需要
注意的是
1.由于logistic函数的存在,这里的梯度下降跟之前的梯度下降实际上式不一样的
2.特征缩放依旧是必要的