目录

  • 摘要
  • Abstract
  • 一、通过案例学习回归(regression)
    • 1.1 回归的概念
    • 1.2 预测宝可梦的cp值案例
  • 二、通过案例学习分类问题
    • 1. 分类模型的概要
    • 2. 预测宝可梦属性案例
    • 3. 使用其他的概率分布
      • 3.1 朴素贝叶斯分类法(Naive Bayes Classifier)
      • 3.2 伯努利分布(Bernoulli distribution)
  • 总结

摘要

本周,通过宝可梦的案例学习了回归问题和分类问题。在回归问题中,使用正则化来解决过拟合问题。并且用生成模型分析了分类问题。

Abstract

This week, we studied regression problems and classification problems through a case study using Pokémon. In regression problems, we addressed overfitting issues by utilizing regularization. Additionally, we analyzed classification problems using generative models.

一、通过案例学习回归(regression)

1.1 回归的概念

回归实际上就是“最佳拟合”。根据已有的数据拟合出一条最佳的直线、曲线、超平面或函数等,用于预测其它数据的目标值。如已知一系列的点(x,y),我们可能就可以拟合出一条最佳的直线y=kx+b。那么如果已知自变量x,要预测目标值y的话,就可以直接带入到该直线方程中求出y。回归的目的就是预测数值型的目标值。

1.2 预测宝可梦的cp值案例

案例介绍:寻找到一个合适的model,该model用于预测初级宝可梦进化后的cp值。一只初级宝可梦的属性有:初级宝可梦的cp值、种类、重量、高度等。首先,我们先观察初级宝可梦的cp值这个属性,测试集中有十个数据。

  1. 随机定义一个model。该model中包含b,w等未知参数。不同的未知参数组成不同的function,这些function组成一个function set。
  2. 如何在function set中找到最优的function?可以定义一个损失函数(Loss),通过使均方误差达到最小化,即可找到最优的w和b。基于均方误差最小化来进行模型求解的方法称为“最小二乘法”。在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的距离之和最小。

    损失函数的图像如下图所示。该图像的x轴代表b的大小,y轴代表w的大小。如果点位于偏蓝的位置,则该损失函数的值越小,该function性能越好。反之点位于偏红的位置,该function性能越差。
  3. 通过梯度下降法找到更好的参数。若损失函数是可微分的,那么梯度下降法都可以找到相对较好的参数。

    梯度下降法上周介绍过了,如下图所示。并且,该方法只能找出局部最小值(local minimum),但是在线性模型中,不会有这种困扰,因为线性模型没有局部最优(local optimal)的问题。
  4. 该案例的结果如下图所示。最好的b=-188.4,w=2.7。图像中的e代表样本点与线性模型之间的距离。该模型在训练集上的平均错误率为31.9。若想得到更低的错误率,可以考虑更换更为复杂的模型。

    考虑二次式,如下图所示。

    考虑三次式,如下图所示。

    随着模型越来越复杂,该模型在训练集上的正确率也越来越高。这是因为次数高的模型对次数低的模型之间是包含关系。对于次数较高的模型,只需将高次的参数置为0,该高次的参数就退化为低次的参数。

    虽然模型更加复杂在训练集上错误率会更低,但是在测试集上并非如此。如下图所示,当模型为三次的时候,测试集上的错误率是最低的。提升到四次时,测试集的错误率略有提升。提升到五次时,错误率飙升到232.1。这种现象称为“过拟合”。
  5. 当我们提高训练集的数量,会发现之前的实验因为训练集数量过少而忽略了其他影响宝可梦cp值的因素。此时,我们开始考虑宝可梦的种类对进化后的宝可梦cp值的影响。

    可以使用 δ \delta δ函数来将下图改为线性模型。

    如果种类与 δ \delta δ函数中的种类相同时,该函数的值为1,否则为0。这样就把该复杂的模型转化为一个线性模型。

    考虑了宝可梦种类这一因素后,在训练集和测试集上的正确率都提高了很多,如下图所示。
  6. 再将其他的属性全部加入进来。

    模型如下图所示,虽然在训练集上效果很好,但是在测试集上发生了“过拟合”。可以使用“正则化”来优化。

    当参数过大时,函数会过于陡峭,容易造成过拟合。通过正则化,选择较小的参数,可以使函数更加“平滑”,更好的预防过拟合。

    修改损失函数, w i w_{i} wi​的值越接近0,损失函数的值越小。而 w i w_{i} wi​越小,函数越平滑。

    正则化后,过拟合问题得到解决,如下图所示。

二、通过案例学习分类问题

1. 分类模型的概要

机器学习中的分类模型有逻辑回归、朴素贝叶斯、决策树、支持向量机、随机森林、梯度提升树等分类算法,不仅可以进行二分类,还可以进行多分类。
而分类问题和回归问题一样,都是找到一个函数,只是这个函数的输出为某一类别。

2. 预测宝可梦属性案例

案例介绍:一只宝可梦通常会有一系列属性。例如:攻击力,速度等。将这些属性组成一个向量x来唯一标识这只宝可梦。即计算机通过分类算法找到一个合适的函数,将特征输入后的输出为该宝可梦的属性。

如下图所示,可以用下图的七个属性组成一个向量来唯一标识一只宝可梦。

  1. 将分类问题转化为回归问题来解答。
    以二分类问题为例。使用回归来解答分类问题时,将值1视为class 1,将值-1视为class 2。如果得到的值更接近1,则将其分到class 1中。反之,其类别为class 2。

    这种分类方法是有问题的。如下图所示,model是y = b + w1x1 + w2x2,input是两个feature:x1 和 x2 ;有两个class,蓝色class 1,红色class 2。如果是Regression,那么就希望蓝色class 1的宝可梦,input后的output越接近1越好;红色class 2的宝可梦,input后的output越接近-1越好。所以,可以使用图中的绿色线b + w1x1 + w2x2=0来区分类别。在绿线左上类别为class 2,右下为class 1。但是如果有远大于1的点,对于回归模型,它需要减少该点到模型的距离,就会将绿线顺时针旋转,来减少这些点所带来的error。

    所以,Regression定义model好坏的定义方式对classification来说是不适用的,两种方法目标不同。
  2. Generative model(生成模型)
    理想的方法如下图所示。


    将上图的两个盒子类比为分类问题的两个类,从1号盒子中取出一个球类比为取出一个数据,来判断其为class 1的概率为多少。其概率计算公式如下图所示。所以需要在训练集中分别估算P(c1),P(c2),P(x|c1),P(x|c2)的值。

    在宝可梦案例中,prior probability(先验概率)P(c1)和P(c2)的计算过程如下。

    而对于P(x|c1),P(x|c2),假设该训练集的样本点呈高斯分布,通过这些样本点来确定一个高斯分布,能使样本点尽可能位于高斯分布之中。

    高斯分布由期望 μ \mu μ和协方差矩阵 ∑ \sum ∑决定。 μ \mu μ决定高斯分布的最高点位置, ∑ \sum ∑决定高斯分布的范围。

    利用极大似然函数来计算最优的期望 μ \mu μ和协方差矩阵 ∑ \sum ∑。极大似然函数如下图所示。

    通过分别 μ \mu μ和 ∑ \sum ∑微分取极值,可以得到最优的 μ \mu μ和 ∑ \sum ∑,如下图示。

    接着将值代入贝叶斯公式,算出分类值。其中 μ \mu μ和 ∑ \sum ∑的维度由属性的数量决定。
  3. 对Generative model的优化
    协方差矩阵 ∑ \sum ∑的规模和输入的feature size的平方成正比的,所以当宝可梦的属性过多时,对于不同的class,如果它们的协方差矩阵不同时,容易过拟合。所以给他们相同的协方差矩阵。

    优化后的结果如下图所示。参数变少,boundary变成一条线,预测的精准度也有所提升。

3. 使用其他的概率分布

3.1 朴素贝叶斯分类法(Naive Bayes Classifier)

对于朴素贝叶斯分类法,特征向量的每一个dimension都是相互独立的,即他们之间的covariance都是0。所以可以把一个特征向量产生的概率拆解成所有dimension产生的 概率之积。其中,它的covariance matrix变成是对角矩阵。

3.2 伯努利分布(Bernoulli distribution)

对于二元分类问题,可以考虑采用伯努利分布。

后验概率分析

总结

本周的学习重点是回归问题和分类问题,以宝可梦为案例进行了学习。在回归问题中,我们学习了使用正则化来解决过拟合问题的技巧。此外,我们还深入分析了分类问题。通过在宝可梦案例中的实践,我们对解决实际预测和分类挑战有了更深入的理解。通过了解如何处理过拟合问题和使用生成模型,我们掌握了构建准确且稳健的机器学习模型的关键知识。下周将学习逻辑回归问题等。

李宏毅机器学习周报第二周相关推荐

  1. 【中英】【吴恩达课后测验】Course 3 -结构化机器学习项目 - 第二周测验

    [中英][吴恩达课后测验]Course 3 -结构化机器学习项目 - 第二周测验 - 自动驾驶(案例研究) 上一篇:[课程3 - 第一周测验]※※※※※ [回到目录]※※※※※下一篇:[课程4 -第一 ...

  2. 李宏毅机器学习2016 第二十一讲 隐马尔可夫模型和条件随机场

    视频链接:李宏毅机器学习(2016)_演讲•公开课_科技_bilibili_哔哩哔哩 课程资源:Hung-yi Lee 课程相关PPT已经打包命名好了:链接:https://pan.baidu.com ...

  3. 深度学习笔记第三门课 结构化机器学习项目 第二周 机器学习(ML)策略(2)...

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  4. 第一周:李宏毅机器学习周报

    目录 摘要 一.机器学习基本概念 二.Training简版三步骤 1.Function with Unknown Parameters ​编辑 2.Define Loss from Training ...

  5. 【吴恩达机器学习】第二周课程精简笔记——多元线性回归和计算参数分析

    1. Multivariate Linear Regerssion(多元线性回归) (1)Multiple Feature We now introduce notation for equation ...

  6. 李宏毅机器学习—读书笔记

    李宏毅机器学习笔记(LeeML-Notes) leeml-notes 机器学习 人工智慧(Artificial Intelligence)是我们想要达成的目标,希望机器可以跟人一样的聪明.机器学习(M ...

  7. 李宏毅2022ML第五周课程笔记

    目录 李宏毅机器学习第五周-sequence to sequence 应用 Syntactic Parsing(语法分析) Multi-label Classification(多标签分类) Obje ...

  8. Coursera 机器学习 -- 逻辑回归 笔记 【第二周】

    Logistic Regression Model(逻辑回归模型) Cost Function 如下所示,本章讲述了如何拟合cost参数θ: hypothesis函数在图中复习一下,在图中我们的假设函 ...

  9. 吴恩达机器学习第二周编程题参考答案

    Andrew Ng机器学习第二周编程题参考答案 https://download.csdn.net/download/yhf2333/10718778 语言:Octave Tips: 1.记得使用si ...

最新文章

  1. 4、利用zookeeper来实现client端自动感知服务器端在线情况,并且可以进行负载均衡。...
  2. win10 IIS(互联网信息服务) 及 外网访问tomcat
  3. Kibana远程代码执行漏洞攻击方法和漏洞原理分析
  4. 【Python】数据可视化教程来了!
  5. COLINUX的安装与网络配置
  6. .NET自定义多文件(图片)上传的实现方式
  7. 王家林 云计算分布式大数据Hadoop实战高手之路第七讲Hadoop图文训练课程:通过HDFS的心跳来测试replication具体的工作机制和流程...
  8. python sum函数numpy_解决Numpy中sum函数求和结果维度的问题
  9. 数据库系统中数据抽象的三级结构
  10. [iOS]如何把App打包成ipa文件,然后App上架流程[利用Application Loader]
  11. 【Android 四大组件之Content Provider】一文吃透 BroadcastReceiver 广播接收器
  12. 软件工程毕业设计题目推荐50例
  13. 互联网晚报 | 12月17日 星期五 | 抖音电商独立App“抖音盒子”正式上线;腾讯电子签上线商家版功能;年内首只游戏股上市...
  14. matlab模拟换热过程,第5章Hysys模拟换热过程.ppt
  15. SpringCound-Alibaba
  16. 【数论】扩展欧几里得算法(EXTENDED-EUCLID)
  17. 阿里云安全中心如何设置掌控云服务器安全
  18. 逆天改命,Java 反射的黑科技
  19. python需要cpu还是显卡问题_如果研究深度学习方向,是CPU更重要还是显卡更重要?...
  20. S3C6410 SD Card一键烧写 WINCE 6.0

热门文章

  1. 实战教你如何在短时间打造一个男性流量站
  2. 180度舵机与360度舵机
  3. Javascript(JS) leetcode 279. 完全平方数
  4. SAP AW01N显示折旧计算2023.3.14
  5. Kotlin使用Jectpack的Compose组件--基础环境构建
  6. 2023最新信息安全毕业设计题目选题大全
  7. python操作摄像头
  8. [高贵]气质非凡.!
  9. [C#基础]说说lock到底锁谁?
  10. 投稿会议论文的近期常用网站信号与图像处理国际会议