吴恩达机器学习学习笔记第七章:逻辑回归
- 分类Classification分为正类和负类
(规定谁是正谁是负无所谓)
吴恩达老师举例几个例子:判断邮箱是否是垃圾邮箱 一个在线交易是否是诈骗 一个肿瘤是良性的还是恶性
如果我们用之前学习的linear regression(线性回归(PS:linear是直线的意思))去做分类其实不太适合 为什么呢?
1)因为我们要分类 得到的数想要的是0或1 或者多分类问题的0 1 2 3,所以我们想将分类器的输出值压缩到[0,1]上(如果是0,1分类问题)但是linear regression他生成出来的值是连续的值 可以大于1也可以小于1 也可以在0~1之间 生成后我们还需要人为去规定一个阈值去判断哪种的值归为1哪种的归为0 所以很难做到自动化去判断这个临界值在哪儿
2)
根据训练集我们可以用一条直线hθ(x)=θ^TX去拟合数据 这条粉色的线就是hθ(x)=θ^TX 直线看上去不错 我们以y=0.5来区分肿瘤
这样得到的分类结果非常理想
但是如果多一个样本 这些样本通过线性回归就会拟合出来蓝色的线
现在如果仍然将阈值设为0.5 那y对过去x轴就在绿点 此时绿点右侧被预测为正,左侧预测为负
那这毫无疑问是一个差的回归了 因为上面5个是恶性的样本有2个被分为良性了 而我们要想得到正确结果需要的是蓝色的那条竖线去分
2.Logistic Regression逻辑回归是一种专门的分类算法 和线性回归一样生成的也是连续的值 但这个值是0~1里的值 为什么能压缩到0~1呢?
是因为我们使用的假设函数Hypothesis的名字叫Sigmoid function/Logistic Function他长这样:
hθ(x)=g(θ^tX) 其中 实际上就是给Linear regression套了一个sigmoid函数
假设函数Hypothesis也可以写为
Logistic Regression的假设函数代表的实际上是一个条件概率:在参数θ和x给定的条件下,y分成哪一类的概率
hθ(x)=P(y=1|x;θ)hθ(x)=P(y=1|x;θ)
P(y=1|x;θ)+P(y=0|x;θ)=1
指的是我来了一个病人把他肿瘤特征x喂给我们的Hypothesis ,这里的两个特征x0=1是我们初始化规定的,x1是肿瘤大小 然后通过这某个Hypothesis运算得到一个h(x)=0.7 那我们就说y=1即很遗憾他得恶性肿瘤的概率是0.7
3.决策边界(分类线) Decision Boundary:
还是先根据来划分类别 y=0 y=1的类别
然后再将hθ(x)对应回溯到Linear Regression的函数值上 再从θ^Tx回溯到对所有的x值对应多维空间的一个划分
举个例子:如:先将hθ(x)小于0.5的划分为0 大于0.5的划分为1
那么 z=Θ^tx当z大于0时g(z)=g(Θ^tx)=hΘ(x)≥0.5 那么y=1;分类为y=0同理
决策边界各式各样,只有得到Θ值就能得到决策边界,举两个例子:
先是一个线性的例子:
假设参数Θ0=-3 Θ1=1 Θ2=1 我们把x1+x2=3这条直线画入图像:
即得到:
当y=1时-3+x1+x2≥0
当y=0时-3+x1+x2≤0
也可以是这种非线性的情况:
假设函数 hθ(x)=g(θ0+θ1x1+θ2x2+θ3*x1^2+θ4*x2^2)
假设我们的参数θ=[-1,0,0,1,1]^t(向量形式)
所以我们的决策边界(Decesion Boundary)是各式各样的,函数越复杂,决策边界的造型就越奇葩 比如可以是如下的样子:
需要注意的是 上述两条(直线、圆线)决策边界(Decesion Boundary)只跟我们的参数Θ有关 而与样本数据无关
4.逻辑回归的代价函数:
和之前一样 要想找到我们的参数Θ,需要使用梯度下降法
对于线性回归他画出的代价函数是凸函数,通过梯度下降就可以找到我们的全局最优解;但是对于逻辑回归还使用这个代价函数的话,就会因为逻辑回归中的hθ(x)是非线性的sigmoid函数最后会导致我们的损失函数变成参数θ的非凸函数虽然有最小值但是有很多局部最小值,所以对他用梯度下降法很可能只是达局部最小值而不能保证能收敛到全局最小值
为了让他变成凸函数 我们选择换一个专用的代价函数称之为Logistic regression cost function
将上述代价函数的分段函数形式改写成一个非分段形式
是个分类函数 分类结果不同 他的损失函数也不同
别忘了Costfunction的本质要求:对于我们函数生成出来的概率值 如果概率值指向了正确的方向是靠近的 比如我们面对的y=1的分类 那么我们的预测值也是靠近1这个值 那我们的损失函数要奖励你 就意味着损失值很低 但是如果预测出来是y=1但实际结果是y=0那你预测就做的不好 我们的损失函数就要惩罚你 给你一个很大的惩罚值
其中导数等于:
惊奇的发现和之前线性回归梯度下降的式子一样 但显然线性回归和逻辑回归不是同一个算法 因为h(x)不同:
5.其他算法
还有3种类似梯度下降的算法
这三种算法的缺点就是比梯度下降法复杂多了 优点是无需选学习率α 比梯度下降效率高
6.多元分类:一对多
即不是只有0 1了 而是比如email分类y=1代表同事 y=2代表朋友 y=3代表家人 y=4代表兴趣
从以前的两个数据集变成了三个数据集
我们拟合出三个分类器
先将叉叉和框框看作一类 判断他是三角还是不是三角
同理对方形和叉叉都做一次 这3个模型
当来了一组新的x1x2后分别代入这三个模型中 分别生成3个概率 看哪个概率最高 最高的就是那一类