当前位置: 首页 > news >正文

《统计学习方法》(李航)——学习笔记

第一章 概论

统计学习,又称统计机器学习(机器学习),现在提到的 机器学习 往往指的就是 统计机器学习。

统计学习研究的对象是数据,其对数据的基本假设是同类数据存在一定的统计规律性,因此可以用概率统计方法处理他们:用随机变量描述数据中的特征,用概率分布描述数据的统计规律,然后基于数据构建概率统计模型从而对数据进行预测和分析。

  • 统计学习假设数据是独立同分布(i.i.d.)

1.1 统计学习的分类

统计学习方法一般包括一下几种:

  1. 监督学习

  • 监督学习假设输入随机变量X和输出随机变量Y遵循联合概率分布

  • 监督学习的模型可以是概率模型:条件概率分布,也可以是非概率模型:决策函数。对具体的输入做预测,写作。通过学习(训练)得到一个模型为条件概率分布或决策函数

  1. 无监督学习

  • 无监督学习的本质是学习数据中的统计规律或潜在结构。

  • 假设是输入空间,是隐式结构空间,无监督学习要学习的模型可表示为或条件概率分布

  1. 强化学习

  1. 半监督学习与主动学习

统计学习按照模型的种类,可分为:

  1. 概率模型和非概率模型 (二者区别不在于输入与输出映射关系,而在于模型内部结构)

  1. 概率模型:决策树、朴素贝叶斯、隐马尔可夫模型、条件随机场、概率潜在语义分析、潜在狄利克雷分配、高斯混合模型。代表是概率图模型(贝叶斯网络、马尔科夫随机场、条件随机场)

  1. 非概率模型:感知机、支持向量机、k近邻、AdaBoost、k均值、潜在语义分析、神经网络

  1. 线性模型和非线性模型

  1. 线性模型:感知机、线性支持向量机、k近邻、k均值、潜在语义分析

  1. 非线性模型:核函数支持向量机、AdaBoost、神经网络

  1. 参数化模型和非参数化模型

按照算法来分,可以分为:在线学习和批量学习

按照技巧来分,可以分为:贝叶斯学习和核方法

1.2 统计学习三要素

统计学习三要素:模型、策略、算法。

在监督学习中,模型就是所要学习的条件概率分布或决策函数。算法指学习模型的具体计算方法,可以利用已有的最优化算法,有时也需要开发独自的最优化算法。策略是按照什么样的准则从模型的假设空间中选取最优模型。下面主要讲策略。

损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。

期望风险是模型关于联合分布的期望损失;经验风险是模型关于训练样本集的平均损失。根据大数定律,当样本容量N趋于无穷时,经验风险趋于期望风险。所以一个很自然地想法就是用经验风险估计期望风险。答案现实中样本往往是有限的,所以用经验风险估计期望风险往往不是很理想,要对经验风险进行一定矫正。

这就引出了监督学习两个基本策略:经验风险最小化结构风险最小化

经验风险最小化就是我们在监督学习训练模型的时候,最小化经验风险(训练集的平均损失);结构风险最小化等价于正则化,就是再经验风险上加上表示模型复杂度的正则化项或罚项。

经验或结构风险函数就是最优化的目标函数。

// 泛函:函数的函数。

1.3 泛化能力

泛化误差:学习到的模型对未知数据预测的误差,即为泛化误差。事实上,泛化误差就是所学习到的模型的期望风险。

泛化误差上界:TODO

1.4 生成模型与判别模型

监督学习方法可以分为 生成方法 和 判别方法,学到的模型分别是 生成模型 和 判别模型。

生成模型:由数据学习联合概率分布,然后求出条件概率分布作为预测的模型。即:

  • 这类方法之所以称为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系。

  • 典型的生成模型:朴素贝叶斯法隐马尔可夫模型

判别模型:由数据直接学习决策函数或条件概率分布作为预测的模型。

  • 判别方法关心的是对给定的输入X,应该预测什么样的输出Y

  • 典型的判别模型:k近邻法、感知机、逻辑斯蒂回归模型、最大熵模型、支持向量机、提升方法和条件随机场。

两类方法的优缺点:

  • 生成方法:

  • 生成方法可以还原出联合概率分布,判别方法不能

  • 生成方法的收敛速度更快

  • 当存在隐变量时,仍可以用生成方法学习,但不能用判别方法

  • 判别方法:

  • 判别方法直接学习条件概率或决策函数,直接面对预测,往往学习准确率更高;

  • 由于直接学习,可以对数据进行各种程度上的抽象,定义特征并使用特征,因此可以简化学习问题。

相关文章:

《统计学习方法》(李航)——学习笔记

第一章 概论统计学习,又称统计机器学习(机器学习),现在提到的 机器学习 往往指的就是 统计机器学习。统计学习研究的对象是数据,其对数据的基本假设是同类数据存在一定的统计规律性,因此可以用概率统计方法…...

阿里云EMR集群搭建及使用

目录 1.简介 1.什么是EMR 2.组成 3.与自建hadoop集群对比 4.产品架构 2.使用 1.创建EMR集群 1.登录EMR on ECS控制台 2.软件设置 3.硬件设置 3.基础配置 2.配置 1.组件配置 2.用户管理 3.安全组 4.Gateway 3.组件UI 1.简介 1.什么是EMR EMR是运行在阿里云平台…...

学习streamlit-4

st.slider 今天学习st.slider滑块组件的使用。 st.slider滑块组件通常被用来作为应用的输入,支持整数、浮点数、日期、时间和日期时间。 下面的示例程序包含以下简单功能,以演示st.slider滑块组件: 用户通过调整滑块选择值应用打印出所选…...

高级Oracle DBA面试题及答案

作为高级 Oracle DBA,您将负责 Oracle 数据库基础架构的设计、安装、配置、监控和维护。您还将负责制定和实施备份和恢复计划,并确保数据的安全性和完整性。要成功担任此职位,您需要对 Oracle 数据库架构有深入的了解,并能够有效地…...

程序员成长路线

程序员在成长的过程中,不同的阶段,需要关注的问题点一会都会有所不同,今天给大家分享下自己的感受。 0-1年,入门,掌握语言基础、提高工具的使用熟练度。 工作第一年,主要围绕ssm三件套、mysql、red…...

【Galois工具开发之路】关于类的重新装载思路

思路 当一个java的类文件发生变更,如果动态的热更新这个新的类文件?目前来说,有两种可能的方式 新增一个自定义ClassLoader,名为NC,让NC去load这个新的类文件,这样就完成了新的类定义的替换 但目前Java有…...

哪款蓝牙耳机音质好?内行推荐四款高音质蓝牙耳机

蓝牙耳机经过近几年的快速发展,在音质上的表现也越来越好。哪款蓝牙耳机音质好?最近看到很多人问。接下来,我来给大家推荐四款高音质蓝牙耳机,可以当个参考。 一、南卡小音舱蓝牙耳机 参考价:246 发声单元&#xff…...

Android程序自动在线升级安装

安卓小白分享: Android程序自动在线升级安装.(通过GetSharedDownloadsPath方法) 1>.修改AndroidManifest.template.xml ( 此文件在你DELPHI项目的目录中,如找不到就文件查找吧) 最好把此文件拖到DELPHI, 用DELPHI打开,(这样,它会一行一行格式清楚) 找到文字<%u…...

JS的BroadcastChannel与MessageChannel

BroadcastChannel与MessageChannel BroadcastChannel BroadcastChannel以广播的形式进行通信 BroadcastChannel用于创建浏览器标签页之间的通信 使用BroadcastChannel的浏览器标签页面必须要遵循同源策略 页面1使用BroadcastChannel创建一个频道&#xff0c;页面2使用Broadc…...

nextjs开发 + vercel 部署 ssr ssg

前言 最近想实践下ssr 就打算用nextjs 做一个人博客 &#xff0c; vercel 部署 提供免费域名&#xff0c;来学习实践下ssr ssg nextjs 一个轻量级的react服务端渲染框架 vercel 由 Next.js 的创建者制作 支持nextjs 部署 免费静态网站托管 初始化项目 npx create-next-app p…...

Good Idea, 利用MySQL JSON特性优化千万级文库表

&#x1f473;我亲爱的各位大佬们好&#x1f618;&#x1f618;&#x1f618; ♨️本篇文章记录的为 利用MySQL JSON特性优化千万级文库表 相关内容&#xff0c;适合在学Java的小白,帮助新手快速上手,也适合复习中&#xff0c;面试中的大佬&#x1f649;&#x1f649;&#x1f…...

【python游戏制作】快来跟愤怒的小鸟一起攻击肥猪们的堡垒吧

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 为了防止/报复偷走鸟蛋的肥猪们&#xff0c;鸟儿以自己的身体为武器&#xff0c; 仿佛炮弹一样去攻击肥猪们的堡垒&#xff0c;保卫自己的鸟蛋 这个游戏大家没玩过的想必也听说过~ 今天就给大家分享一下用python写的愤怒的…...

ARM 学习(一)

ARM 处理器的运行模式ARM处理器共有7种运行模式&#xff0c;如下表所示&#xff1a;处理器模式描述用户模式&#xff08;User&#xff09;正常程序运行模式中断模式&#xff08;IRQ&#xff09;用于通常的中断处理快速中断模式&#xff08;FIQ&#xff09;用于高速传输和通道处…...

深入分析Java的序列化与反序列化

序列化是一种对象持久化的手段。普遍应用在网络传输、RMI等场景中。本文通过分析ArrayList的序列化来介绍Java序列化的相关内容。主要涉及到以下几个问题&#xff1a; 怎么实现Java的序列化 为什么实现了java.io.Serializable接口才能被序列化 transient的作用是什么 怎么自…...

、Tomcat源码分析-类加载器

接下来&#xff0c;我们再来看下 tomcat 是如何创建 common 类加载器的。关键代码如下所示&#xff0c;在创建类加载器时&#xff0c;会读取相关的路径配置&#xff0c;并把路径封装成 Repository 对象&#xff0c;然后交给 ClassLoaderFactory 创建类加载器。 Bootstrap.java…...

反转链表相关的练习(下)

目录 一、回文链表 二、 重排链表 三、旋转链表 一、回文链表 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输…...

2.进程和线程

1.进程1.1 终止正常退出(自愿)出错退出(自愿)严重错误(非自愿)被其他进程杀死(非自愿)1.2 状态就绪态&#xff1a;可运行&#xff0c;但因为其他进程正在运行而暂时停止阻塞态&#xff1a;除非某种外部事件发生&#xff0c;否则进程不能运行1.3 实现一个进程在执行过程中可能被…...

C++回顾(十四)—— 函数模板

14.1 概述 所谓函数模板(function template)&#xff0c;实际上是建立一个通用函数&#xff0c;其函数类型和形参类型不具体指定&#xff0c;用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替&#xff0c;不必定义多个函数&a…...

如何做好项目各干系人的管理及应对?

如何更好地识别、分析和管理项目关系人&#xff1f;主要有以下几个方面&#xff1a; 1、项目干系人的分析 一般对项目干系人的分析有2种方法&#xff0c; 方法一&#xff1a;权利&#xff08;影响&#xff09;&#xff0c;即对项目可以产生影响的人&#xff1b; 方法二&#xf…...

Elasticsearch使用系列-ES增删查改基本操作+ik分词

一、安装可视化工具KibanaES是一个NoSql数据库应用。和其他数据库一样&#xff0c;我们为了方便操作查看它&#xff0c;需要安装一个可视化工具 Kibana。官网&#xff1a;https://www.elastic.co/cn/downloads/kibana和前面安装ES一样&#xff0c;选中对应的环境下载&#xff0…...

HG-ha/MTools行业实践:短视频工作室AI配音+自动字幕+封面图生成闭环

HG-ha/MTools行业实践&#xff1a;短视频工作室AI配音自动字幕封面图生成闭环 你是不是也遇到过这样的场景&#xff1f;作为短视频工作室的创作者&#xff0c;每天都要面对海量的视频素材。一条1分钟的视频&#xff0c;从剪辑、配音、加字幕到制作封面&#xff0c;前前后后可能…...

Mastering nohup: Redirecting Output for Persistent Server Deployments

1. 为什么你需要掌握nohup命令 想象一下这个场景&#xff1a;你在远程服务器上启动了一个重要的Java服务&#xff0c;花了半小时调试终于跑起来了。这时候老板喊你开会&#xff0c;你顺手关闭了终端窗口。等会议结束回来一看——服务居然挂了&#xff01;所有努力付诸东流&…...

实践指南:借助LLaMa-Factory高效定制你的专属LLaMa3

1. 为什么选择LLaMa-Factory微调LLaMa3&#xff1f; 第一次尝试微调大语言模型时&#xff0c;我花了整整三天时间在环境配置上。从CUDA版本冲突到PyTorch依赖问题&#xff0c;各种报错让人崩溃。直到发现LLaMa-Factory这个"微调瑞士军刀"&#xff0c;才明白原来大模型…...

算法高频核心:网格方向遍历从入门到精通

摘要:二维网格方向遍历是算法笔试、面试绝对高频考点,覆盖井字棋、五子棋、岛屿统计、单词搜索、游戏模拟等场景。本文用一套通用方向数组模板,打通 4 方向 / 8 方向遍历、k 连珠判定、DFS 连通块、回溯搜索四大题型,附完整可运行 C++ 代码与 LeetCode 原题对照,新手也能快…...

Windows系统安装APK应用:APK Installer全面解析与高效使用指南

Windows系统安装APK应用&#xff1a;APK Installer全面解析与高效使用指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在Windows电脑上直接运行Android应用曾经是一…...

如何高效管理《神界:原罪2》模组?Divinity Mod Manager终极指南

如何高效管理《神界&#xff1a;原罪2》模组&#xff1f;Divinity Mod Manager终极指南 【免费下载链接】DivinityModManager A mod manager for Divinity: Original Sin - Definitive Edition. 项目地址: https://gitcode.com/gh_mirrors/di/DivinityModManager Divini…...

Go 并发编程的常见陷阱

Go语言凭借轻量级协程和高效的并发模型&#xff0c;成为高并发场景的热门选择。其简洁的并发语法背后隐藏着诸多陷阱&#xff0c;稍有不慎就会引发数据竞争、死锁等问题。本文将剖析三个典型并发陷阱&#xff0c;帮助开发者避开暗礁&#xff0c;写出健壮的并发程序。**共享变量…...

FPGA分频器避坑指南:为什么你的奇数倍分频时钟占空比总不对?

FPGA奇数倍分频器设计避坑实战&#xff1a;从原理到调试的完整解决方案 在FPGA开发中&#xff0c;时钟分频是最基础却又最容易出问题的环节之一。特别是当我们需要奇数倍分频时&#xff0c;很多工程师都会遇到一个共同的困扰——为什么仿真通过的代码&#xff0c;烧写到FPGA后输…...

SenseVoice-small部署教程:WSL2子系统Windows本地开发环境完整搭建

SenseVoice-small部署教程&#xff1a;WSL2子系统Windows本地开发环境完整搭建 1. 前言&#xff1a;为什么要在本地部署语音识别&#xff1f; 如果你正在寻找一个能在自己电脑上离线运行的语音识别工具&#xff0c;那么你来对地方了。今天我要分享的是如何在Windows电脑上&am…...

从‘米勒平台’到‘零电压开关’:深入浅出聊聊MOS管栅极驱动的那些门道与进阶玩法

从‘米勒平台’到‘零电压开关’&#xff1a;深入浅出聊聊MOS管栅极驱动的那些门道与进阶玩法 在功率电子领域&#xff0c;MOS管的开关过程就像一场精密的芭蕾舞表演&#xff0c;而栅极驱动则是那位看不见的编舞师。当您第一次在示波器上观察到那个神秘的"米勒平台"时…...