机器学习基础

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

  • 学习方式

    • 监督学习:收获到了外界的知识

    • 无监督学习:用得最多的是“聚类

    • 半监督学习:既有信息输入,但又不是全部

    • 强化学习:不断对抗

  • 学习结果

    • 回归

    • 分类

强调:目前主流学习技术是监督学习,半监督学习和强化学习在通用场景下还不是特别的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相关资料。