python3入门机器学习笔记 CH1~2

一、机器学习的数据

311496-3a02cf1e0d49fa4b.png
image.png

大写字母表示矩阵,小写字母表示向量
标记一般也叫做标签

311496-70b96c0429ccaa68.png
image.png

每一行本身组成了一个特征向量,但是一般说向量都是一个列向量,所以每一行的特征向量的表示用列向量来表示


311496-fe5a23d272fac4c7.png
image.png

特征空间:每一个样本的本质,其实就是在这些特征所组成的空间中的一个点,这个空间就称为特征空间
分类任务的本质,就是在特征空间进行切分

机器学习算法在高维空间中的分析方法一般都是只取两个特征进行分析,然后将低维空间中的规律推广至高维空间。


311496-217ce6100c07da7d.png
image.png

特征可以是很明确的花瓣长度、宽度,也可以说是很抽象的,比如图片上的像素点就是一个特征。

喂给机器的特征是什么样子的,将很大程度决定我们的算法最终计算出来的结果的有效性和可靠性,甚至对于这一方面有专门的领域来研究,就是所谓的特征工程。

深度学习可以理解为算法在帮我自动的进行特征工程。

二、机器学习的基本任务

  1. 分类任务
  • 二分类任务
    • 垃圾邮件判定
    • 是否恶性肿瘤
    • 股票涨跌
  • 多分类任务
    • 手写数字识别
    • 图像识别
    • 信用卡评级
    • 很多复杂问题通过设置阶段级别等手段也可以转换成多分类问题
  • 多标签分类
    • 二分类和多分类都是限定在一个类别中,区别只是在于在该类别下可选的类别数到底是两个还是多个,而更高级的分类任务,可以进行多个类别的分类。
    • 如,一张照片,可以分到多个类别中,识别出T恤标签,网球拍标签,女孩标签等,进而可以以此来推断出这个图片表示的语义。


      311496-3a29a4b39a8a4777.png
      image.png

      311496-2803d0f1514015ed.png
      image.png
  1. 回归任务
    与分类任务最大的不同就是数据集的标签列(label),标签列的值是离散值就是分类任务,是连续值就是回归任务。
  • 结果是一个连续数字的值,而非一个类别
    • 房价价格
    • 股票价格
    • 学生成绩
  • 一些情况下,回归任务可以简化成分类任务
    • 学生成绩,只需预测是A,A+,B
    • 无人车打方向盘的角度,多少角度是一类
311496-805d14543ac154ed.png
image.png

什么是机器学习

  1. 需要大量的学习资料,即数据集dataset
  2. 将数据集喂给我们的机器学习算法
  3. 机器学习算法将根据我们的数据集训练一个模型
  4. 而这个模型是我们进一步解决问题的核心
  5. 当有了新的样本资料以后,是根据这个模型来得出输出结果的

那么到底什么是模型,可以非常简单的把模型就理解成一个函数, 换句话说,我们的机器学习算法本质上得到的就是一个f(x)的函数,这样当我有了新的样本资料即x,把这个样本送到f(x),那么f(x)就可以根据他的函数计算规则,得到一个结果,如果结果是0,1,2,3,4这种类别的话就是分类任务,如果是连续值的话就是回归任务。

311496-b7fc3d8f9c0158a7.png
image.png

机器学习的分类:

  1. 从解决问题的角度分类:分类和回归
  2. 从机器学习算法本身:监督学习,非监督学习,半监督学习,增强学习


    311496-854df75a67fcded5.png
    image.png

监督学习:

给机器的训练数据拥有"标记"(label)或者"答案" ,即有小y


311496-7161873d5339d3f4.png
image.png

非监督学习:

给机器的训练数据没有任何“标记”或者“答案”


311496-81679b19898bd8e4.png
image.png

非监督学习的意义:

  1. 对数据进行分类——聚类分析
  2. 对数据进行降维处理
  • 特征提取:通过分析从而将无用的特征扔掉,这个叫特征提取,有时候需要专业的领域知识才能做好。
  • 特征压缩:并非扔掉特征,而是将特征之间关联性特别强的特征组用一个特征来表示,大大提高机器学习项目的运行效率,却并不影响预测的准确率
  • 异常检测:一类数据中存在一些点,明显是异常的。
    311496-1c067682fddcce5e.png
    image.png
311496-8f29189de83b740c.png
image.png

311496-1f76119721687105.png
image.png

311496-91287d11307d8292.png
image.png

半监督学习

一部分数据有“标记”或者“答案”,另一部分数据没有(是更常见的情况,因为有各种原因产生的标记缺失)

例如手机相册,有的会标记上属于个人信息,属于青岛旅游,但是还有一些并没有标记。

311496-c6f06c0dd3de5e86.png
image.png

增强学习

称Agent为一个机器学习算法,要根据周围的环境来采取action,根据采取行动后收到的反馈(正反馈或者负反馈),改进自己的行为模式(算法),之后再面对环境的其他情况时,根据改进的算法,再做出相应的action,不断往复。

  • 适合机器人(Alpha Go)等强人工智能场景
311496-fd6be7a43c56a79b.png
image.png
311496-53bd360c44024b8f.png
image.png

机器学习的其他分类

  1. 在线学习和批量学习(离线学习)
  2. 参数学习和非参数学习


    311496-080eec3512b9ea5f.png
    image.png

批量学习:

训练出的模型,可以直接投入生产使用,有新的样例过来,通过这个模型来预测出相应结果,这个过程中模型不会再发生任何变化了(即不会再作为训练集来优化我们的模型了)

311496-d4d830a03cae4c5c.png
image.png

但是如垃圾邮件识别,随着时间的推移,新的种类的垃圾邮件层出不穷,明年垃圾邮件的样式可能和今年有很大不同,所以今年训练出的垃圾邮件的识别系统,希望能使用三年五年甚至二十是不现实的,可以通过对新数据增加标记然后融合旧数据来重新批量学习。

但是如股市这种环境每时每分每秒都在不断变化的情况,如果需要算法能及时适应环境的变化,就需要使用在线学习的方法,及时将新产生的数据用于改进我们的机器学习模型。

311496-3ad8d11e140af400.png
image.png

在线学习:

整体的机器学习的算法流程不变,只不过区别在于每次我们输入一个新的样例进入模型,得到一个预测的输出结果后的同时,刚进来的这个新的输入样例并不浪费掉,我们将这个输入样例和(在一些情况下能马上拿到的)相应的正确(实际)结果(注意,并非是输出结果)结合,仍然持续不断的训练这个算法,让这个算法进行学习。

比如:股市,现在要预测下一分钟的股价,即可得到一个下一分钟的预测股价,而一分钟后,我们同时也拿到了实际的正确股价,包括我们预测的股价和实际的股价的差异,那么这些信息仍然是一个机器学习训练所需的资料,然后我们可以将这些信息迭代进我们的机器学习算法,来改进我们的模型,以此类推,这个过程不断的循环,相当于在线的过程不仅仅简单的运用这个模型得到一个预测结果,与此同时我们还在不断训练这个算法,让这个算法进行学习,所以叫做在线学习。

感想:可以肯定的是在线学习包含增量学习,在线学习和增量学习一个区别实际就在于是否有7x24小时稳定在线运行的概念以及是否有不断将下一刻的实际数据来训练模型。

311496-9b26afe537ff91f7.png
image.png

由于使用的是实际结果又作为输入,所以当有一些异常数据,或者竞争对手强行制造的不符合实际情况的数据也会被学习进去,所以要及时的对数据进行异常检测(非监督学习),加强数据进入算法前的把控。

311496-bc64d42514dc64da.png
image.png

参数学习

基于一个函数(模型)假设,该函数有一些参数,整个机器学习的过程本质就是找到一个好的参数来描述特征和标签之间的关系,基于这种的机器学习算法,就叫做参数学习。


311496-f2f6b64dcef63548.png
image.png

311496-cb76d1a94790010b.png
image.png

即参数学习基于了很多假设,假设了是某种关系,之后,机器学习的任务就是学习出这个统计模型的参数,一旦学习到了这个参数,那么预测就会变得很简单,不再需要原来的数据集的参与。

非参数学习

  1. 不做过多假设,预测是仍然需要原来的数据集参与
  2. 非参数不等于没参数,最本质的区别在于,不对整个过程进行建模,不把整个问题整个问题理解成学习成一个参数,但是学习过程中也是需要参数的参与的。
311496-cf676b0a0a8daed8.png
image.png

机器学习相关的哲学思考

数据即算法?

311496-ae4aca44889666e2.png
image.png

算法的角度有优有劣,但数据量越大,各算法的准确度就会越高,而且当数据量达到一等程度后,其实算法的准确率的差别并不大,所以只需以数据驱动,把数据方面做好就ok了?

311496-8edb2c9e8745720f.png
image.png

算法为王?

311496-8c036ad5aacfd4ed.png
image.png

AlphaGo并没有输以任何的数据,所有数据都是算法生成的!

即算法本身依然是很重要的,再好的数据都要有高效、优秀的算法作为辅助,才能最大程度发挥数据本身的作用。

如何选择机器学习算法

311496-94b353562f09cc70.png
image.png

311496-1b549c35783746f1.png
image.png

根据没有免费的午餐定理,任何两个算法的期望性能是相同的,就是说把两个算法作用在所有问题中,有的问题A算法比B算法好,有的则相反。但是,平均来讲,A算法和B算法的性能是一样的,即具体到某个特定问题的时候,有些算法可能是更好的,所以还是去真正的寻找哪个更合适。

311496-3e8bbbd664e458b0.png
image.png
311496-25b12af749491819.png
image.png

猜你喜欢

转载自blog.csdn.net/weixin_33908217/article/details/87198109