引入
线性回归可以得到预测值,但这无法用于分类,如果能把预测到的结果转为概率正则可判断。那如何转为概率呢?
Sigmoid函数
这里自变量可以为任意实数,而输出可以以0.5为阈值进行正负例类别划分。
你也可以以别的值为阈值,记住要从实际业务的角度出发来选择模型
对数几率回归
将线性回归的式子带入,就可以得到logistic function(亦译作逻辑回归)的假设函数
假如样本数据的标签y有两个类别,用0,1表示,那么
写成一个式子就是
损失函数
求解需要构造损失函数
可以像线性回归一样,从统计理论着手,对L(θ)求似然函数,两边取对数,化简
这里的过程可以参考线性回归,不过赘述
另外一种构造损失函数的方法,可以从假设函数的特点出发,
这是一个误差函数,选择它的原因可以通过带入y=1预测=1,y=1预测=0,y=0预测=0,y=0预测=1来看看。
可以得知,预测正确的时候误差函数值为0,预测错误,误差函数值为无穷
那我们对每个样本数据计算误差函数值,然后损失函数J(θ)就是误差函数值的总合
不管何种方式,构造损失函数的结果是一样的,通常我们会乘上一个常系数-1/m,来简化运算。
求解损失函数
采用梯度下降的方法求解损失函数
首先求偏导
然后对参数进行更新
α为学习率,可以看到,逻辑回归模型的迭代更新格式和线性回归模型的迭代更新完全一样。
但他们的假设函数h(θ)是不同的。
多分类
如何利用二分类学习器来解决多分类问题?
方法一:我们可以将多分类任务拆解为多个二分类任务来求解,然后对每个二分类任务训练一个分类器,最后对这些分类器的预测结果进行集成,以获得最终结果。
集成结果可以通过投票产生,也可以通过置信度判断。
方式二:修改逻辑回归的损失函数,使用softmax函数构造模型解决多分类问题,softmax分类模型会有相同于类别数的输出,输出的值为对于样本属于各个类别的概率,最后对于样本进行预测的类型为概率值最高的那个类别。
若所有类别之间有明显的互斥则使用softmax分类器,若所有类别不互斥有交叉的情况则构造相应类别个数的逻辑回归分类器。