动机与目的
本次课将学习分类,它输出的变量y是从少量几个可能值中得出的,学习逻辑回归算法,它的输出结果值总是在0~1之间
判定某电子邮件是否为垃圾邮件的例子,我们希望得到的结果是:是或否
判断在线金融交易是否存在欺诈,我们希望得到的结果是:是或否
判断肿瘤是良性还是恶性,我们希望得到的结果是:是或否
上述例子中,想要预测的变量只能是:是或否,这种只有两种可能的分类问题,称为二分类问题(结果只有两种可能的类,或两种可能的类别)
常用表示两类的方式:是或否、真或假、0或1
通常用数字0和1表示预测的结果y,因为这最适合我们想要实现的算法类型(逻辑回归)
还有一种常说的术语,正样本(true/one)和负样本(false/zero),比如正常邮件是负样本,因为是否为垃圾邮件的否,就是false/zero,相反是正样本,但是正负样本并不意味着样本的好坏,怎样表示看你心情
如何构建分类算法
1,恶性肿瘤,0,良性肿瘤,横轴是肿瘤的大小,纵轴是对应的标签y
试着用数据拟合出一条直线(蓝色的线),但是线性回归预测的不只是0和1,而是所有的数,但是这里是类别,我们可以选择一个阈值,如0.5,当低于0.5时,ŷ=0(良性),如果模型输出值大于等于0.5,则ŷ=1(恶性)
对于该数据集,线性回归预测的貌似可以
但是当在最右边加个样本时,预测的线就会变成绿线,如果阈值不变,则出现错误
我们想要的是在没加样本之前判定是什么性,加了新样本之后还是什么性
当在右边加了新样本后,线性回归产生了最佳拟合线,分界线(决策边界)也向右移动了,此时出现错误
使用逻辑回归算法可以避开上述问题,尽管有回归二字,但是它是用来分类的,是用来解决输出标签y为0或1的二元分类问题的
总之:使用线性回归并不是解决分类问题的好算法
逻辑回归
使用1或yes表示恶性肿瘤,用0或no表示良性肿瘤,横轴是肿瘤大小,纵轴只有0和1,因为是个二分类问题
用线性回归无法解决回归问题,相反,逻辑回归会拟合出一条s型曲线(红色)去拟合这个数据集
当肿瘤的大小是紫色点处,然后算法输出0.7,说明这个肿瘤很有可能是恶性的,但是输出标签y不会等于0.7,只能是0或1
要创建逻辑回归算法,我们需要引进重要的数学函数:sigmoid函数(逻辑函数),sigmoid函数的输出值在0~1之间
用g(z)表示,即g(z) = 1/(1+e(-z)),0<g(z)<1,e约等于2.7,当z很大时,g(z)无限接近于1,当z无限小时,g(z)无限接近于0
同样,在z=0时,g(z)=0.5
我们使用sigmoid函数来建立逻辑回归算法,我们把值wx+b存在一个变量z中,下一步是算出z值,并传递给sigmoid函数g,g(z)的输出值是由该公式g(z) = 1/(1+e(-z))计算出,最后得出的式子就是逻辑回归模型,它输入特征,输出0~1之间的数字
总之是将线性回归模型的输出限制在0~1之间,f(x) = g(wx+b)=g(z)
逻辑回归的输出:在给定输入x的情况下,类别或标签等于1的概率,如果输出值是0.7,则表明有70%的概率这个病人的真实标签y等于1,换句话说,该病人有70%的概率肿瘤是恶性的,此时y=0的概率是0.3
右上角式子的写法:分号表明参数w和b是影响计算的参数,在给定输入特征的前提下,y=1的概率是多少(条件概率)