Python机器学习笔记1:线性回归与逻辑回归

这几天本来是出自学习新东西的目的,开始使用 csdn 写博客,写着写着感觉这个过程对于巩固知识帮助很大,所以我想把自己前段时间学习的机器学习的课程笔记再整理一下。

线性回归一般用来做连续值预测
逻辑回归则用来做分类,但更多时候会是用来做排序

1.线性回归
1.1. 定义
是有监督学习,考察的是连续值变量,需要学习的是映射,也就是权重矩阵 W W
线性回归函数Y=XW,其中 Y Y 是 n*1 维向量,X是 n*m 矩阵, W W 是 m*1 的系数矩阵。线性回归采用平方损失函数,至于为什么采用平方损失函数,是因为平方损失函数采用的是最小二乘法的思想,其残差满足正态分布的最大似然估计。

1.2. 损失函数(loss function)
线性回归损失函数:lW=1mi=1n(yiXiW)2,其中 Xi X i 是 1*m 维向量, W W 是m*1维向量。
损失函数的作用是帮助我们去权衡 W 的好坏。
不同模型用的损失函数各有不同,像逻辑回归LR里使用的是熵损失,SVM里使用的是铰链损失(hinge)。

1.3. 梯度下降法(Gradient Descent Optimization)
逐步最小化损失函数的过程,每次下降前,找准最佳方向(),每次都迈出同样的布长。
可以参考这个链接
随机梯度下降SGD是最基础的但不是最好的,tensorflow中用的更多的是上文中提到的 Adam Optimizer。
学习率 alpha 设置大小决定了步长,太大了收敛快,但可能错过最低点,太小的话收敛太慢,因此一般会把 alpha 设置为比较小的数以免错过最低点。
网上应该有自适应 alpha 的方法,而不是固定大小,需要回头补齐。

1.4. 过拟合与正则化
准确与否、泛化能力强弱决定了模型的好坏,但往往特征越多、模型越复杂则越容易产生过拟合。
过拟合缺乏鲁棒性
抑制过拟合的方法很多,最常见的是 L2 正则化,就是在模型后面加入了惩罚项:

另外,深度学习中的dropout 也是抑止过拟合和好方法。

2.逻辑回归 Logistic Regression

虽然名字里带着回归,但是是用来做离散值预测/分类的。
2.1. sigmoid函数
将任意数映射好0到1之间,其中 sigmoid(0) = 0.5,公式为 :这里写图片描述
这里写图片描述

2.2. 判定边界 Decision Bonder
LR算法的核心不像线性回归那样去让直线(或曲线)拟合样本,而是试图去寻找区分各个类别的判定边界。
这里写图片描述

2.2.1 线性判定边界
假设遇到如下场景的两类数据集,我们需要作出一条判定边界将他们区分开来:
这里写图片描述
线性逻辑回归的表达式可以表示成:
这里写图片描述
上式中的 g() g ( ) 就是sigmoid函数,而里面的包含的是线性回归表达式,也就是图中的蓝线,红叉所在的数据在线上结果大于0,因而 sigmoid会判定为 >0.5 ,反之白圈的在线下小于0,因而sigmoid会判定为 <0.5。

2.2.2. 非线性判定边界

大多数场景不会有线性可分的数据集,我们需要在线性表达式内加入二次项、三次项等变型,把他们看做一个整体来做线性回归,再带入做 LR 。就如上面举例的图。

2.3. 损失函数
转载自 jediael_lu这里可看 LR 损失函数的推导
由于LR回归是非凸的,我们不能再用线性回归的损失函数。它的损失函数是: J(ω)=1mmi=1[yiloghω(xi)+(1yi)log(1hω(xi)](11) (11) J ( ω ) = − 1 m ∑ i = 1 m [ y i log ⁡ h ω ( x i ) + ( 1 − y i ) log ⁡ ( 1 − h ω ( x i ) ]
注意这个损失函数是还未加正则化项的。

2.4. 多分类器
二分类只是多分类的特例,现实生活中更多的场景是要把数据分入N个类别中的一类,而非非此即彼的。

2.4.1 one vs rest 策略
使用(N-1)个二分类器分别判定,数据是 category1, category2 …,如果都是否则自动归类为 categoryN。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值