统计学习-基本术语和概念

2024-08-31 21:32

本文主要是介绍统计学习-基本术语和概念,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.统计学习和机器学习:
统计学习就是计算机系统利用数据和统计方法提高系统性能的机器学习,如今的机器学习一般指的就是统计学习。所谓的系统性能一般指对数据的分析和预测能力。

2.输入空间,输出空间,特征空间
将输入和输出所有可能的取值称之为输入空间和输出空间;
每个输入实例通常由一个特征向量进行表示,这样所有的特征向量构成了特征空间。有的时候输入空间和特征空间是相同的,有的时候是不同(比如:输入是一张图片实例,在图片识别分类中,我们需要对图片进行特征提取)

3.统计学习三要素
模型:就是我们需要学习的条件概率分布或者决策函数。模型的假设空间(hypothesis space)包含所有可能的条件概率分布或决策函数。比如,假若决策函数是输入变量的线性函数,那么模型的假设空间就是所有线性函数构成的集合。
顺便提一下,由决策函数表示的模型称之非概率模型;由条件概率表示的模型称之概率模型。

策略:就是如何从假设空间中选择最优的模型。这就涉及到选择的好坏问题,如何度量这种好坏就得引入损失函数( L(Y,f(X)) )和风险函数( Rexp(f)=Ep[L(Y,f(X))] )。
损失函数度量模型一次预测的好坏,对于非概率模型的损失函数一般有0-1损失函数,平方损失函数和绝对损失函数,对于概率模型的损失函数有对数损失函数。具体定义如下:
这里写图片描述
风险函数度量平均意义下模型的预测好坏:
这里写图片描述
但是风险函数的求解需要获得 X,Y 的联合概率 P(x,y) 。实际上,我们如果知道 P(x,y) 就可以直接获得输出的条件概率 P(y|x) 了,这就是一个鸡生蛋,蛋生鸡的问题。换个角度再想想,我们可以通过计算给定样本的平均损失(即经验风险)来估计期望风险:
这里写图片描述
原因是:根据大数定律,当样本容量N趋于无穷时,经验风险趋于实际的期望风险。但是一般而言我们的样本是有限的,所以单纯的通过经验风险估计期望风险所得到模型的泛化能力一般都是不足的。
针对经验风险最小化(empirical risk minimization,ERM)泛化能力不足的问题,我们可以在代价函数中添加正则项,即结构风险最小化(structural risk minimization,SRM).
这里写图片描述

算法:是指学习模型的具体计算方法。统计学习基于训练数据集,根据学习策略从假设空间中选择最优模型,最后需要考虑的就是用什么样的方法求解最优模型,这个时候就是在已知代价函数的基础下求解模型参数。

4.正则化:在原本的经验风险代价函数的后面添加一个用于描述模型复杂度的项目,该项目被称作正则化项,正则化符合奥卡姆剃刀原理。所谓奥卡姆剃刀原理应用于模型选择时就是:在所有可能的选择的模型中,能够很好的解释已知的数据并且十分简单才是最好的模型。一般用于描述模型复杂度的有L0,L1和L2范数。
L0范数是指向量中非0的元素的个数。如果我们用L0范数来规则化一个参数矩阵W的话,就是希望W的大部分元素都是0。这太直观了,太露骨了吧,换句话说,让参数W是稀疏的。
L1范数是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)。L0范数很难优化求解(NP难问题),而L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解,L0和L1都是用来进行特征选择的。
L2范数是指向量各元素的平方和然后求平方根。我们让L2范数的规则项 ||W||2 最小,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0,L2范数可以提高模型的泛化能力,同时L2范数方便优化求解,获取的特征相比于L1和L0更加平滑。

5.交叉验证(cross validation)
首先涉及三类数据:训练集(training set),验证集(validation set)以及测试集(test set)。训练集用来模型的训练,验证集用于模型的选择,测试集用于最终对学习方法的评估。
1.简单交叉验证:将数据的70%作为训练集,30%作为测试集。然后用训练集在各种条件下训练模型,从而得到不同的模型,在测试集上评价各个模型的测试误差,选出测试误差最小的模型。
2.S折交叉验证:将数据随机地切分为S个互不相交的大小相同的子集;然后利用S-1个子集的数据训练模型,利用余下的子集测试模型;将这一个过程对可能的S种选择重复进行,最后选择S次评测中平均测试误差最小的模型;
3.留一交叉验证:往往在数据缺乏的情况下使用,假设存在N个数据,一般将S=N

6.生成模型和判别模型:
监督学习可以分为生成方法(generative approach)和判别方法(discriminative approach)。
生成方法由数据学习联合概率分布 P(X,Y) ,然后求出条件概率分布 P(Y|X) 作为预测的模型,即生成模型: P(Y|X)=P(X,Y)P(X) ,这种方法之所以称为生成方法是因为模型表示了给定输入X产生输出Y的生成关系,典型的生成模型有朴素贝叶斯和隐马尔科夫模型。
判别模型则是由数据直接学习决策函数 f(X) 或者条件概率分布 P(Y|X) 作为预测的模型,典型的判别模型比如:kNN,感知机,决策树,LR,最大熵模型,svm,提升方法(比如:AdaBoost,bagging,随机森林)和条件随机场。

7.准确率(precision),召回率(recall)和 F1
TP(真阳):将正类预测为正类
FP(假阳):将负类预测为正类
TN(真阴):将负类预测为负类
FN(假阴): 将正类预测为负类
P()=TPTP+FP
R()=TPTP+FN
2F1=1P+1R ,准确率和召回率都高时, F1 值也会高。
TPR=TPTP+FN
FPR=FPFP+TN
这里写图片描述
从图中可以看出,ROC曲线一般在(0,0)和(1,1)直线的上方。(因为对于二分类问题而言,这条直线就代表随机猜测,0.5的概率预测正确)
在ROC 空间中,每个点的横坐标是FPR,纵坐标是TPR,这也就描绘了分类器在TP(真正的正例)和FP(错误的正例)间的trade-off。Area Under roc Curve(AUC)就出现了。顾名思义,AUC的值就是处于ROC curve下方的那部分面积的大小。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的Performance。

8.监督学习的三类问题:
1.分类问题:当输出变量Y取有限个离散值时,预测问题便成为分类问题
2.标注问题:是分类问题的一个推广,标注问题又是更复杂的结构预测。标注问题的目标在于学习一个模型,使它能够对观测序列给出标记序列作为预测。(可能的标记个数是有限的,但其组合所成的标记序列的个数是依序列长度呈指数级别增长的),标注常用的统计学习方法有:隐马尔科夫模型和条件随机场。
3.回归问题:用于预测输入变量和输出变量之间的关系,回归问题的学习等价于函数拟合,选择一条函数曲线使其可以很好地拟合已知数据且很好地预测未知数据。

这篇关于统计学习-基本术语和概念的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125043

相关文章

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

Redis 基本数据类型和使用详解

《Redis基本数据类型和使用详解》String是Redis最基本的数据类型,一个键对应一个值,它的功能十分强大,可以存储字符串、整数、浮点数等多种数据格式,本文给大家介绍Redis基本数据类型和... 目录一、Redis 入门介绍二、Redis 的五大基本数据类型2.1 String 类型2.2 Hash

Java Instrumentation从概念到基本用法详解

《JavaInstrumentation从概念到基本用法详解》JavaInstrumentation是java.lang.instrument包提供的API,允许开发者在类被JVM加载时对其进行修改... 目录一、什么是 Java Instrumentation主要用途二、核心概念1. Java Agent

Kotlin 协程之Channel的概念和基本使用详解

《Kotlin协程之Channel的概念和基本使用详解》文章介绍协程在复杂场景中使用Channel进行数据传递与控制,涵盖创建参数、缓冲策略、操作方式及异常处理,适用于持续数据流、多协程协作等,需注... 目录前言launch / async 适合的场景Channel 的概念和基本使用概念Channel 的

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程