• 统计学习方法——学习笔记之概论


    原文地址(http://liuao.tech/post/20180612/

    1.统计学习

           赫尔伯特·西蒙曾对学习给出以下定义:

    如果一个系统能够通过执行某个过程改进它的性能,这就是学习。

    统计学习就是计算机系统通过运用数据及统计方法提高系统性能的机器学习。

    2.统计学习三要素

    • 模型
    • 策略
    • 算法

    3.实现统计学习方法的步骤

    • 1.获取一个有限的训练数据集合;
    • 2.确定包含所有可能模型的假设空间(学习模型的集合);
    • 3.确定模型选择的准则(策略);
    • 4.实现求解模型的算法(算法);
    • 5.通过学习方法选择最优模型;
    • 6.利用学习的最优模型对新数据进行预测或分析。

    4.统计学习的分类

    • 监督学习
    • 非监督学习
    • 半监督学习
    • 强化学习

    5.一些基本概念

    • 输入空间:输入所有可能的取值。
    • 输出空间:输出所有可能的取值。
    • 特征向量:每个具体的输入是一个实例,通常是由特征向量表示。
    • 特征空间:特征向量存在的空间。
    • 联合概率分布:监督学习假设输入与输出的随机变量X和Y遵循联合概率分布P(X,Y),它是监督学习关于数据的基本假设。
    • 假设空间:输入空间到输出空间的映射集合。
    • 过拟合:学习时选择的模型包含的参数过多,以至于出现这一模型对已知数据预测得很好,但对未知数据预测得很差的现象。
    • 泛化能力:学习到的模型对位置数据的预测能力。
    • 泛化误差:所学习到的模型的期望风险。

    6.损失函数

    损失函数或代价函数用来度量模型一次预测的好坏,常用的损失函数有如下几种:

    损失函数越小,模型就越好。

    7.风险

    学习的目标是选择期望风险最小的模型。根据大数定律,当样本容量N趋于无穷时,经验风险趋于期望风险。

    sl1_risk1

    但实际中样本数量有限,甚至很小。因此需要对经验进行一定的矫正,这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化。

    sl1_risk2

    8.正则化

    正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化会罚项。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。如,回归问题中,损失函数是平方损失,正则化项的参数向量的L1和L2范数表示:

    sl1_regularization

    9.交叉验证

    交叉验证是一种模型选择方法,基本思想是重复的使用数据。

    • 简单交叉验证:随机将数据分为两部分,一部分作为训练集,另一部分作为测试集。
    • S折交叉验证:将数据随机地分为S个大小相同互不相交的子集,然后利用S-1个子集的数据进行训练,利用余下的子集测试模型,将这一过程对可能的S种选择城府进行,最后选出S次评测中平均误差最小的模型。
    • 留一交叉验证:S=N,N为给定数据集的容量,称为留一交叉验证。

    10.生成模型与判别模型

    生成模型:

    • 生成方法:由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型。
    • 典型的模型:朴素贝叶斯法和隐马尔可夫模型。
    • 生成方法特点:
      • 可以还原出联合概率分布P(X,Y);
      • 学习收敛速度更快;
      • 当存在隐变量时,仍可以用生成方法。

    判别模型:

    • 判别方法:由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型,即为判别模型。
    • 典型的模型:k邻近法、感知机、决策树,logistics regression、最大熵模型、支持向量机、提升方法和条件随机场等。
    • 判别方法的特点:
      • 直接学习的是决策函数f(X)或者条件概率分布P(Y|X),直接面对预测,往往学习的准确率更高;
      • 由于直接学习f(X)或者P(Y|X),可以对数据进行各种程度上的抽象、定义特征并使用特征,可以简化学习问题。

    参考文档:

           1. 统计学习方法              李航 著

  • 相关阅读:
    IT项目中使用 json格式数据 保存项目配置信息, 在配置文件再读取json文件的内容进行赋值
    python 使用eval() 可以将json格式的数据,转换为原始数据
    python 取出字典的键或者值/如何删除一个字典的键值对/如何遍历字典
    python2 中 unicode 和 str 之间的转换及与python3 str 的区别
    python 将列表嵌套字典的unicode字符串转换为str格式的字符串的方法
    Django 项目拆分配置文件settings.py
    苹果笔记本调整 pycharm 字体大小的地方
    django rest framework 向数据库中插入数据时处理外键的方法
    java实现文件的压缩和解压
    java 跨数据库导入大数据
  • 原文地址:https://www.cnblogs.com/alants/p/9172918.html
Copyright © 2020-2023  润新知