统计学习方法 | 概论
一.简介
统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科
1.统计学习方法的步骤
①得到一个有限的训练数据集合
②确定学习模型的集合(模型)
③确定模型选择的准则(策略)
④实现求解最优模型的算法(算法)
⑤通过学习方法选择最优模型
⑥利用学习的最优模型对新数据进行预测或分析
2.统计学习方法的分类
基本分类:监督学习,无监督学习,强化学习
按模型分类:概率 / 非概率模型 ,线性 / 非线性模型,参数化 / 非参数化模型
按算法分类:在线学习,批量学习
按技巧分类:贝叶斯学习,核方法
3.监督学习
定义:指从标注数据中学习预测模型的机器学习问题,其本质是学习输入到输出的映射的统计规律
根据变量类型不同:
输入变量与输出变量均为连续变量的预测问题:回归问题
输出变量为有限个离散变量的预测问题:分类问题
输入变量与输出变量均为变量序列的预测问题:标注问题
4.无监督学习
定义:指从无标注数据中学习预测模型的机器学习问题,其本质是学习数据中的统计规律或潜在结构
二.统计学习方法的三要素
统计学习方法 = 模型 + 策略 + 算法
1.模型
假设空间:所有可能的条件概率分布或决策函数,用F表示
2.策略
3.算法
算法:如何求解最优模型的问题
若优化问题存在显式解析解,算法简易
通常不存在解析解,需要数值计算方法,比如梯度下降法
三.模型的评估与选择
过拟合:学习所得模型包含参数过多,出现对已知数据预测很好,但对未知数据预测很差的现象
四.正则化与交叉验证
正则化:实现结构风险最小化策略
奥卡姆剃刀原理:在模型选择中,选择所有可能模型中,能很好解释已知数据并且十分简单的模型
数据充足的情况下,数据集分为:训练集,验证集,测试集
训练集(training set):用以训练模型
验证集(validation set):用以选择模型
测试集(test set):用以最终对学习方法的评估
数据不充足的情况下:
简单交叉验证:随机将数据分为两部分,即训练集和测试集
S折交叉验证:随机将数据分为S个互不相交,大小相同的子集,其中S-1个子集作为训练集,余下的子集作为测试集
留一交叉验证:S折交叉验证的特殊情形,S=N
五.泛化能力
1.泛化误差
2.泛化误差上界
定义
指泛化误差的概率上界。两种学习方法的优劣,通常通过它们的泛化误差上界进行比较
性质
样本容量的函数:当样本容量增加时,泛化上界趋于0
假设空间容量的函数:假设空间容量越大,模型就越难学,泛化误差上界就越大
考虑如下二分类问题
3.Hoeffding不等式
六.生成模型与判别模型
1.生成模型
定义:由数据学习联合分布概率P(X,Y),然后求出P(Y|X)作为预测模型,即P(Y|X)=P(X,Y)/P(X)
例:朴素贝叶斯法,隐马尔可夫模型
注:输入和输出变量要求为随机变量
2.判别模型
定义:由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测模型
例:k近邻法,感知机,决策树
注:不需要输入和输出变量均为随机变量
七.监督学习的应用
1.分类问题
评价指标
分类准确率
方法
感知机,k近邻法,朴素贝叶斯,决策树,logistic回归
应用
银行业务,网络安全,图像处理,手写识别,互联网搜索
2.标注问题
方法
隐马尔可夫模型,条件随机场
应用
信息抽取,自然语言处理
3.回归问题
类型
按输入变量个数:一元回归,多元回归
按输入和输出变量之间关系:线性回归,非线性回归
损失函数
平方损失
应用
商务领域
八.Python实现
1.使用最小二乘法拟和曲线
# 目标函数
def real_func(x):return np.sin(2*np.pi*x)# 多项式
def fit_func(p, x):f = np.poly1d(p)return f(x)# 残差
def residuals_func(p, x, y):ret = fit_func(p, x) - yreturn ret# 十个点
x = np.linspace(0, 1, 10)
x_points = np.linspace(0, 1, 1000)
# 加上正态分布噪音的目标函数的值
y_ = real_func(x)
y = [np.random.normal(0, 0.1) + y1 for y1 in y_]def fitting(M=0):"""M 为 多项式的次数"""# 随机初始化多项式参数p_init = np.random.rand(M + 1)# 最小二乘法p_lsq = leastsq(residuals_func, p_init, args=(x, y))print('Fitting Parameters:', p_lsq[0])# 可视化plt.plot(x_points, real_func(x_points), label='real')plt.plot(x_points, fit_func(p_lsq[0], x_points), label='fitted curve')plt.plot(x, y, 'bo', label='noise')plt.legend()return p_lsq# M=9
p_lsq_9 = fitting(M=9)
当M=9时,多项式曲线通过了每个数据点,但是造成了过拟合
2.正则化
regularization = 0.0001def residuals_func_regularization(p, x, y):ret = fit_func(p, x) - yret = np.append(ret,np.sqrt(0.5 * regularization * np.square(p))) # L2范数作为正则化项return ret# 最小二乘法,加正则化项
p_init = np.random.rand(9 + 1)
p_lsq_regularization = leastsq(residuals_func_regularization, p_init, args=(x, y))plt.plot(x_points, real_func(x_points), label='real')
plt.plot(x_points, fit_func(p_lsq_9[0], x_points), label='fitted curve')
plt.plot(x_points,fit_func(p_lsq_regularization[0], x_points),label='regularization')
plt.plot(x, y, 'bo', label='noise')
plt.legend()
统计学习方法 | 概论相关推荐
- 复现经典:《统计学习方法》第1章 统计学习方法概论
本文是李航老师的<统计学习方法>[1]一书的代码复现. 作者:黄海广[2] 备注:代码都可以在github[3]中下载. 我将陆续将代码发布在公众号"机器学习初学者", ...
- 【机器学习算法专题(蓄力计划)】二、机器学习中的统计学习方法概论
一. 统计学习方法概论 统计学习的定义.研究对象和方法 监督学习.无监督学习.半监督学习.强化学习 统计学习方法三要素:模型.策略.算法 模型选择:正则化.交叉验证.学习的泛化能力 生成模型和判别模型 ...
- 统计学习方法(一)统计学习方法概论
文章目录 第一章 统计学习方法概论 1.1 统计学习 1.2 监督学习 1.2.1 基本概念 1.3 统计学习三要素 1.3.1 模型 1.3.2 策略 1.4 模型评估与模型选择 1.4.1 训练误 ...
- 第一章、统计学习方法概论
第一章.统计学习方法概论 文章目录 第一章.统计学习方法概论 1.统计学习的特点 2.统计学习的研究 3.统计学习方法的基本步骤 3.监督学习 3.1 基本概念 1)输入变量 & 输入空间 & ...
- 统计学习方法-李航-第一章:统计学习方法概论-笔记1
文章目录 0 机器学习分类 0.1 监督学习 0.2 无监督学习 0.3 半监督学习 0.4 强化学习 1 统计学习方法概论 1.1 监督学习的步骤 1.2 统计学习三要素 1.3 模型评估 1.4 ...
- 统计学习与方法实战——统计学习方法概论
统计学习方法概论题 统计学习方法概论 实现统计学习方法的步骤 统计学习方法三要素 模型 策略 损失函数与风险函数 定义 常用损失函数 经验风险最小化(ERM)与结构风险最小化(SRM) 模型评估与模型 ...
- 统计学习方法(一)——统计学习方法概论
文章作者:Tyan 博客:noahsnail.com | CSDN | 简书 1. 统计学习方法概论 本文是统计学习方法(李航)第一章的学习总结. 1.1 统计学习 1.统计学习的特点 统计学 ...
- 第1章统计学习方法概论之1.1统计学习
1统计学习(也称统计机器学习) 1.1统计学习定义: 统计学习(statistical learning)是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科. 统计学习就是计 ...
- 【统计学习】统计学习方法概论
统计学习方法: 本笔记知识来源<统计学习方法>--李航第一章节 1 统计学习 2 监督学习 3 统计学习三要素 4 模型评估与模型选择 5 正则化与交叉验证 6 泛化能力 7 生成模型与判 ...
- 统计学习笔记(1)——统计学习方法概论
1.统计学习 统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科,也称统计机器学习.统计学习是数据驱动的学科.统计学习是一门概率论.统计学.信息论.计算理论.最优化理 ...
最新文章
- 2016-2017-1 《信息安全系统设计基础》 学生博客及Git@OSC 链接
- JVM - 内存管理
- 静态Web开发 JQuery
- java web五: tomcat的目录层次结构以及web应用
- c++面试常考的知识点汇总
- Python_共轭梯度法与最速下降法之间的比较
- leetcode - 104. 二叉树的最大深度
- shell常用的命令
- beaglebone black的cape管理
- spring认证的一些核心类
- node+读写文件_python高级:2.文件读写part2
- Git使用方法(二)-远程库与分支
- linux 内核参数优化 mysql_Linux 系统内核参数优化
- Android PackageManagerService(三)pm命令安装流程详解
- 福师计算机应用基础离线作业一答案,20年秋福师《计算机应用基础》在线作业一【标准答案】...
- 数据分析与挖掘建模(理论知识)
- 市面上常见的手机分辨率
- 紫枫术河 imx6 uboot的mtd分区总结(rootfs为ubi文件系统) imx6 uboot的mtd分区总结(rootfs为ubi文件系统)
- [人工智能]得人工智能者得天下?百度200万美元奖励不到20人的团队
- 台式电脑显示无法自动修复此计算机,windows无法自动修复此计算机怎么解决
热门文章
- Linux中正则表达式与文件格式化处理命令(awk/grep/sed)
- 多线程模式下保证事物的一致性
- WPS如何快速输入随机姓名
- STM32笔记--SDIO(SD卡读取)
- 计算机电脑维修 维修不求人,电脑维修不求人:电脑常见故障维修大全及解决方法...
- 可编程交换机P4网络资源
- 常用工具类 Math:数学计算 Random:生成伪随机数 SecureRandom:生成安全的随机数 2020-2-13
- ROS进行深度相机的标定
- 网络安全-IIS短文件名枚举漏洞
- KSImageNamed 安装后无效解决方法