目录
引言
在前面,我们学过的线性回归中,输出的都是连续性的函数值,那如果,我需要一个模型根据一个人的外貌预测他的性别呢?那么输出只有男或者女,这样就是一个分类的模型了。我们用什么来表示男和女呢?很容易想到,我们可以用0和1分别表示男和女,但是由于我们的线性模型的输出值是不定的函数值,所以不能简单的用线性模型来拟合了。我们想要输出0和1,如果可以找到一个函数只输出0和1就好了,或者输出值只在0和1之间,我们在0到1之间确定一个分界线(分类阈值),把靠近1的作为1输出,靠近0的作为0输出。这时我们就发现了sigmoid函数刚好可以满我们的需求。
sigmoid函数
逻辑回归(Logistics Regression)
模型选择
我们知道线性回归的基本模型为 其中x可以为多个变量。但是sigmoid函数只能由一个变量x。那么假如我们把sigmoid函数中的x拆分为多个变量,把它认为是多个变量的整体。这时我们就可以用线性回归的形式把多个变量连系起来,然后再输入sigmoid函数中进行转换。
损失函数
那么我们的模型就建立好了,以上就是我们建立的模型,接下来想要训练该模型,就要定义一个损失函数了。那么对分类模型的损失函数就不能用L=(y-y_pre)^2 了。这个时候,我们的损失函数就是交叉熵损失函数:
之所以不能用平方误差损失函数,就是因为无论我们的预测值是不是接近我们的目标值。梯度都接近会为0。很容易陷入局部最优点。不利于对模型的训练。
梯度下降
通过对损失函数的求偏导,具体的求导过程,我就不一一列出来了。我们可以得到梯度为:
逻辑回归的向量化
我们的模型函数是
那假如有很多个变量x,我们的表达式就会很繁琐,那么,我们可以用X矩阵表示特征x,用矩阵W,表示,这时b就等于b=x1*w1,x1=1,w1=b。
评估分类模型的有效性
基本概念
ROC 和曲线下面积(AUC)
ROC 曲线(接收者操作特征曲线)是一种显示分类模型在所有分类阈值下的效果的图表。绘制了真正率和假正率两个参数。通过不同的阈值,而得到不同的分类结果,然后得到不同的真正率和假正率的组合。然后绘画出这些点,最后将这些点连接起来,就是我们的ROC曲线。
例:
ROC曲线可以用来评判分类效果,因为它是显示所有分类阈值的效果,所以其不受分类阈值的影响。
直接看ROC曲线,还是比较难观察,我们又引入了AUC(即曲线下的面积),AUC越大,则分类器分类效果越好,反之越差。AUC是对所有可能的分类阈值的效果进行综合衡量。
和ROC曲线相似的还有精确召回曲线。如图:
(a)和(b)展示的是分类器在原始测试集(正负样本分布平衡)的结果。(c)和(d)是将测试集中负样本的数量增加到原来的10倍后分类器的结果。(a,c是ROC曲线,b,d是精确召回曲线)。
可以看出,ROC曲线基本保持原貌,而精确召回曲线则变化较大。
所以:ROC曲线的评估性能稳定,不受分类阈值的影响。而且对不平衡数据也有效。
制作不易,文明取用。