L03-回归和分类
机器学习基础
机器学习主要是研究如何使计算机从给定数据中学习规律,并利用学习到的规律(模型)来对未知或无法观测的数据进行预测。

学习方式
监督学习:收获到了外界的知识
无监督学习:用得最多的是“聚类”
半监督学习:既有信息输入,但又不是全部
强化学习:不断对抗
学习结果
回归
分类
强调:目前主流学习技术是监督学习,半监督学习和强化学习在通用场景下还不是特别的work
线性回归
线性回归是最基础的回归算法。
引入

思考:x与y符合什么关系呢?

观察到x与y的关系(模型选择),y=ax+b,建立线性回归模型
通过优化方法设法拟合数据,得到最优的a
评估该模型是否准确,查看训练集上的准确率
评估该模型的泛化性能,在测试集上的准确率
基本概念
训练集
测试集(交叉验证法、自助法等)

目标函数
损失函数
优化方法
拟合、过拟合、欠拟合
- 准确率、泛化性能
目标函数、优化方法推导
不可能有一个理想的线性函数经过所有训练集的数据点,这个问题怎么处理呢?
高斯:“把偏移都看做误差”,这又是一个假设,但是机器学习的套路就是这样的

使用求极值方法求解目标函数


Tips:

思考:XTX一定可逆吗?

使用梯度下降法求解目标函数
直接采用极值方法求解,有什么缺点?——数据量太大的情况,没有硬盘和内存求解出来
如果不是拿到所有样本点再求解,仅仅只看眼前的梯度逐渐求解呢?


只根据眼前的路径梯度下降求解的方法,称为随机梯度下降法(SGD)
实际上使用样本的过程中,出于效率和稳定性的考虑,我们使用MiniBatch-SGD方法,使用批处理平均来进行梯度更新,而不是对每一个数据都进行一次梯度更新
polynomial方法
可以对样本是非线性的,对系数是线性的

准确度评估
- 对于连续数据(回归问题),一般使用方差评估
- 对于**离散数据(分类问题)**,accuracy、precision/recall


强调:F1越大越好,最大值是1,对于二分类问题,F1=0.5就等价于”胡猜”
避免过拟合
- 避免过拟合,引入正则化技术

分别称为LASSO回归、Ridge回归
- LASSO具有稀疏作用
- Ridge收敛更快
目标函数仍然是不带正则化的原函数
经过改造的上式称为损失函数
强调:优化的目标就是让loss最小
练习
使用线性回归预测房价走势
总结
线性回归是一种回归算法(连续值)
模型简单、计算量较小
对误差敏感
对数据预处理要求较高


思考:能否使用线性回归解决分类问题呢?——不能
logistic回归
- logistic回归是最基础的分类算法
回顾伯努利分布,一次实验的结果只有0、1两种选择。根据贝叶斯公式,如果只考虑P(A|B),则称为极大似然估计

以硬币实验为例,现投掷10次,出现正面6次,反面4次
假设硬币正反概率出现的先验分布P(B)均匀,且上述证据P(A)已成定局,则求P(B|A)就是求P(A|B)即似然函数的最大值

推导
根据极大似然估计,假设事件发生的概率是p,则最大似然函数为:

引入sigmoid假设:

有了P是不够的!我们要拟合原始数据
- 扩展知识点:广义线性模型假设:

继续推导

强调:虽然logistic回归是最基本的分类模型,但它的使用极为广泛,尤其在金融、推荐、商业化等场景中。
练习
使用logistic回归对鸢尾花数据做分类
总结
logistic回归是一种分类算法
模型简单、计算量较小
对异常数据点并不敏感
对数据预处理要求较高
思考:如下数据能够使用logistic分类吗?

这个技巧称为核(kernel)方法,是一种非线性分类器,想深入研究的同学们可以自行查阅svm、kernel相关资料。