1、接下来的关于机器学习的专题内容都会借鉴李航老师的《统计学习方法》。
2、李航老师的书籍中把机器学习称为统计机器学习,我们在文章中简称为统计学习。

01|统计学习概览:

1、统计学习的概念
统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。

2、统计学习的对象
统计学习的对象是数据,它从数据出发,提取数据的特征抽象出数据的模型发现数据中的知识,然后对数据进行分析与预测。

作为统计学习的对象,数据的形式是多样的,包括存在于计算机中的各种数字、文字、图像、音频等格式的数据。

3、统计学习的目的
统计学习的作用是对数据进行预测与分析,特别是对未知数据进行预测与分析,而对数据的预测与分析是通过构建概率统计模型来实现的。所以统计学习的目的是学习什么样的模型和如何学习模型,来让模型对数据进行准确的预测与分析。

根据输入(X)与输出(Y)类型的不同,我们给予预测任务不同的名称:
1)当输入变量与输出变量均为连续变量的预测问题的预测问题称为回归问题。
2)当输出变量为有限个离散变量的预测问题称为分类问题。
3)当输入变量与输出均为变量序列的预测问题称为标注问题。

4、统计学习的方法
统计学习的方法包括模型的假设空间、模型选择的准则以及模型学习的方法,称其为统计学习的三要素,简称模型、策略和算法。

02|统计学习三要素:

1、模型
在前面我们知道统计学习是通过建立模型来对未来的数据进行更好的预测,在监督学习中模型一般是条件概率分布或者是普通函数这两种。

条件概率分布P(Y|X)模型是通过训练集求出P(X),然后在P(X)已知的情况下去求Y发生的概率。

普通函数Y=F(X)模型是通过训练集求出函数F(X)的参数,这样F(X)函数就可以确定,然后给定任意一个X都可以通过函数直接求出Y。

我们把通过条件概率去求Y的这种模型称为概率模型,而通过函数去求Y的这种模型称为非概率模型。

2、策略
同一个数据集可能训练出多个模型即多个函数(如下图所示,同样的数据集训练出三种不同的函数),我们首选肯定是那个预测能力较好的模型,我们应该按照什么样的准则去选择呢,这就是统计学习中的策略。


图2.1—来源于网络

1)损失函数和风险函数
前面说过我们应该首选那个预测能力较好的模型,那么该怎么判断预测能力的好坏呢?引入损失函数,用这个指标来度量模型预测能力的好坏。风险函数是用来度量平均意义下的模型预测能力的好坏。

损失函数是用来表示预测值F(X)和实际值Y的差距大小的函数,常见的损失函数有0-1损失函数、平方损失函数、绝对损失函数、对数损失函数(或对数似然损失函数)。这里提一个疑问:不同损失函数之间的区别是什么,什么算法下该用什么损失函数去衡量呢

风险函数是平均意义下的模型预测能力的好坏,所以损失函数的期望就是风险函数,也称期望损失。

2)经验风险与期望风险
模型F(X)关于训练集的平均损失(损失函数表示的是训练集中的某一个值的预测差距,而经验风险是用来表示整个训练集中所有值的预测差距)称为经验风险或经验损失,记作Remp。

期望风险是模型关于联合分布(即P(Y|X))的期望损失。但是联合分布我们又不知道,所以无法求得。这里引用大数定理,当样本容量足够大时,经验风险趋于期望风险,所以可以用经验风险来代替期望风险。

3)经验风险最小化和结构风险最小化
上面说过经验风险是用来表示整个训练集中所有预测值的预测差距,而经验风险最小化就是表示预测差距最小,而模型好坏的标准也是用预测好坏来评判的,所以我们认为经验风险最小化(预测差距最小)所对应的模型就是最优模型。

当样本容量很小时,经验风险最小化的效果就未必很好,会产生所谓的“过拟合”现象。而结构风险最小化就是为了防止过拟合而提出来的策略,结构风险最小化等价于正则化,其值为经验风险加上表示模型复杂度的正则化项或罚项。结构风险越小表示模型越简单,越不容易发生过拟合,就是我们想要的最优模型。

所以,监督学习问题就成了经验风险和结构风险函数最优化问题,而这两函数就成了目标优化函数。

3、算法
通过前面的策略,我们知道了监督学习问题就是经验风险和结构风险最优化问题,即求解这两个目标函数的最优解,我们把这个具体的最优解求解的过程称为算法。

03|模型评估与模型选择:

1、模型评估
用训练误差与测试误差这两个值来评判模型的好坏。

训练误差就是模型关于训练集的平均损失,就是我们前面说到的经验风险。

测试误差是模型关于测试集的平均损失,反映学习方法对未知数据集的预测能力,是我们需要重点关注的一个指标,通常将这种对未知数据的预测能力称为泛化能力。

2、模型选择
常用的模型选择的方法是正则化和交叉验证,正则化等同于结构风险最小化,前面已经说过,这里主要说一下交叉验证。

交叉验证的基本思路是重复地使用数据,把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在这个数据集的基础上反复进行训练、测试以及模型选择。

交叉验证的分类:

  • 简单交叉验证
    随机地将已知数据集分为两部分,一部分用作训练集,一部分用作测试集,然后用训练集在各种条件下(比如不同的参数个数)训练模型,从而得到不同的模型,在测试集上评价各个模型的测试误差,选出测试误差最小的模型。

  • S折交叉验证
    随机地将已知数据切分成S个互不相交的大小相同的子集,然后利用S-1个子集的数据训练模型,利用余下的子集测试模型,重复这个操作S次,最后选出S次评测中平均测试误差最小的模型。

  • 留一交叉验证
    S折交叉验证的特殊情形是S=N(N为给定数据集的容量),称为留一交叉验证,往往在数据缺乏的情况下使用。

机器学习第一篇:开篇相关推荐

  1. .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划

    写在前面 千呼万唤始出来,首先,请允许我长吸一口气!真没想到一份来自28岁老程序员的自白 这篇文章会这么火,更没想到的是张善友队长的公众号居然也转载了这篇文章,这就导致两天的时间就有两百多位读者朋友加 ...

  2. 苹果机器学习博客姗姗来迟,不过第一篇文章就给紧缺训练数据的研究者们发糖...

    雷锋网(公众号:雷锋网) AI 科技评论按:苹果一出手就要解决人工智能的瓶颈问题,野心不可谓不大,但是效果也不可谓不好,最近的一篇机器学习方面的论文就巧妙地解决了训练数据收集方面的大问题,不仅已经被C ...

  3. 机器学习在光学和声学的应用【系列】——第一篇 深度光学计算及其Inference综述

    机器学习在光学和声学的应用 第一篇 深度光学计算及其Inference综述 文章目录 **机器学习在光学和声学的应用** 前言 一.光学计算发展史 二.用于人工智能的光子线路 总的来说 三.利用自由空 ...

  4. 模式识别与机器学习·第一章——概论

    模式识别与机器学习·第一章--概论 开篇 模式识别 模式 识别 机器学习 研究目的 发展历史 模式识别简史 机器学习简史 系统方法 系统目标 假说的获得 系统的构成 小结 开篇 这系列博客主要用来回忆 ...

  5. 人工智能写出第一篇文章:我真的没想要消灭你们,人类!

    来源:网信科技前沿 在攻克棋类,飞行操控,机器视觉,语音识别等领域后,人工智能又开始入侵写作领域. 人工智能被人类开发出来是为了方便我们人类的生活,帮助人类处理一些事物,它的优点在于其拥有庞大的数据库 ...

  6. 第一篇: 词向量之Word2vector原理浅析

    第一篇: 词向量之Word2vector原理浅析 作者 Aroundtheworld 2016.11.05 18:50 字数 1353 阅读 5361评论 1喜欢 9 一.概述 本文主要是从deep ...

  7. 我的第一篇论文诞生的故事

    点击上方,选择星标或置顶,每天给你送干货! 作者:郭必扬时间:2020-12-16 [插播]年初抽47份大奖!!参加的人还很少,后天开奖! 新年大礼包:Xbox.Switch,PopMart芝麻街系列 ...

  8. kaggle新手入门第一篇——Titanic

    Titanic作为Kaggle官方网站的第一篇入门比赛,如果你想学习kaggle,那么从它开始无疑是比较好的一个选择. 首先贴一下网址:https://www.kaggle.com/c/titanic ...

  9. 第一回 开篇 D3D渲染流程简介

    第一回 开篇 D3D渲染流程简介 http://developer.178.com/201004/65293187592.html 开发这个3D engine已经两年半了,从06年8月刚开始统计的4万 ...

最新文章

  1. 面试题:Class.forName 和 ClassLoader 有什么区别?
  2. 【第二篇】Volley的使用之加载图片
  3. JavaScript中的HTTP GET请求?
  4. 【运筹学】线性规划 人工变量法 ( 人工变量法案例 | 第二次迭代 | 中心元变换 | 检验数计算 | 最优解判定 | 选择入基变量 | 选择出基变量 )
  5. Google Appengine登台服务器操作方法
  6. 【10】jQuery学习——入门jQuery选择器之表单选择器
  7. python文件操作模式是什么,python --文件操作模式详解
  8. php手册+w3c,W3C 教程
  9. echo 1+2+3+4+5“输出的结果是6
  10. 高并发下的HashMap
  11. lindows.javaeye.com
  12. 《JAVA并发编程的艺术》之 Java并发编程实战
  13. 终于搞清楚了:java的long的小l和大L区别
  14. python学习第二天——编写名片
  15. Office 2010 word无法创建工作文件 请检查临时环境变量
  16. Flink DataStream的多流、键控流、窗口、连接、物理分区转换算子的使用
  17. 自动驾驶创业方向有变化?如何突破技术瓶颈?
  18. vscode 关闭 编辑框右侧的 预览框
  19. 什么是真正的转运?常见的五种转运方法
  20. 量化分析入门5:列表和收盘价的移动平均的示例

热门文章

  1. cbitmap 从内存中加载jpg_[转载]windows照片查看器无法显示图片内存不足
  2. js面向对象-组合使用构造函数模式和原型模式(使用最广泛、认同度最高)
  3. 找回root密码--Mysql5.6.36
  4. netty里集成spring注入mysq连接池(二)
  5. jQuery中$(document).ready()和window.onload的区别?
  6. 一个小型数据库的核心组件
  7. 从《兄弟连》到团队管理
  8. java代码,继承。。。主要是传值,赋值。
  9. PostgreSQL函数如何返回数据集
  10. 在移动了用户数据时Android平台的路径设置