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

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

相关文章

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

mysql中insert into的基本用法和一些示例

《mysql中insertinto的基本用法和一些示例》INSERTINTO用于向MySQL表插入新行,支持单行/多行及部分列插入,下面给大家介绍mysql中insertinto的基本用法和一些示例... 目录基本语法插入单行数据插入多行数据插入部分列的数据插入默认值注意事项在mysql中,INSERT I

mapstruct中的@Mapper注解的基本用法

《mapstruct中的@Mapper注解的基本用法》在MapStruct中,@Mapper注解是核心注解之一,用于标记一个接口或抽象类为MapStruct的映射器(Mapper),本文给大家介绍ma... 目录1. 基本用法2. 常用属性3. 高级用法4. 注意事项5. 总结6. 编译异常处理在MapSt

MyBatis ResultMap 的基本用法示例详解

《MyBatisResultMap的基本用法示例详解》在MyBatis中,resultMap用于定义数据库查询结果到Java对象属性的映射关系,本文给大家介绍MyBatisResultMap的基本... 目录MyBATis 中的 resultMap1. resultMap 的基本语法2. 简单的 resul

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢