ISLR_StatisticalLearning

Statistical Learning

why estimate f

  1. 用来预测 预测的时候可以将f̂ \hat{f}当成一个black box来用,目的主要是预测对应x时候的y而不关系它们之间的关系。
  2. 用来推断 推断的时候,f̂ \hat{f}不能是一个black box,因为我们想知道predictorresponse之间的关系,用来做特征提取,关系分析等。

根据目的是预测还是推断或者两者结合选择不同的模型,需要做一下trade off

how estimate f

  1. 参数方法 它将确定了f的形式,将估计p维的f函数降为了对一些参数的估计 先构建参数表达式,然后用参数表达式去训练数据,例如linear regression。 优点是模型和计算简单,缺点是预先确定了f的形式,可能会和真实的f相差较大。
  2. 非参数方法 对f的形式并未做假设,它要求得到的结果与训练集越接近越好,但是保证模型不要太过复杂。 优点是适用于更多的f,能够得到更高的正确率,缺点是因为是无参数估计,所以需要的数据量是很大的。

模型精度和解释的权衡

模型越复杂,对于模型的可解释度越小。

如果需要对模型进行高精度预测的话,比如股票市场,可以采用更flexible的方法。 然而,在股票市场,高精度的方法有时候效果更差,原因是对训练数据产生了过拟合。

监督和非监督学习

注意有 SEMI-SUPERVISED LEARNING的问题

分类和回归问题

注意很多机器学习的方法,既可以应用到回归问题,也可以应用到分类问题。只要qualitative的对象被合适地编码。

Assessing model Accuracy

Measuring quality of fit

模型更flexibilitydegrees of freedom越大。 具体来说,更flexibility,意味着vc维更大,可以shatter的点更多,所以effective points更多, degrees of freedom更大也就是问题的规模更大,模型的选择更多。 模型的选择更多(Hsets更大),这样可以选出训练集MSE最小的点,但是因为VC维的增大,且数据量的有限(VC bound的标准),并不可以保证测试集和训练集的MSE很接近,因此会造成测试集MSE很大,造成过拟合的现象。

解决这个问题,一般采用cross-validation,将训练集的一部分用作测试集,以此来估计EoutE_{out},避免过拟合现象。

bias-variance trade-off

一般来说,测试集的MSE会出现U shapeU shape,是两种因素共同作用的结果: 1. bias和variance 2. vc维增大后的Ein≈0E_{in} \approx 0和Ein≈EoutE_{in} \approx E_{out}

MSE有一个最小值,Var(ϵ)Var(\epsilon)。

variance refers to the amount by which f̂ \hat{f} would change if we estimated it using a different traing data set. 不同的训练集预测出来的ff相差的多少叫做variance,训练集中一个数据的小改变造成f̂ \hat{f}变化很大,那么这个模型的variance就很大。 bias refers to the error that is introduced by approximating a real-life problem. 比如,很多问题不是线性的,如果用线性回归来做,那么与实际问题的关系就会相差很大,这样即使数据量再大也无济于事。

当我们使用更flexible的方法时,会造成bias的下降和variance的上升。通常来说,测试集上的MSE大小取决于两者的变化速度。一般来说,刚开始bias下降的多,MSE下降,后来variance上升的多,造成MSE上升,因此会有U形曲线。

classification setting

bayes classifier

就是一个简单的条件概率分类器,根据不同的xox_o选择概率最大的yy。

理论上,贝叶斯分类器能够选出最小error rate的模型,其错误率表示为

在仿真的数据中,错误率并不是0。因为两种类型的数据有重叠,所以有些点的概率小于1。从这种程度上,bayes error rateirreducible error有相似的地方,都是不能减少的错误。

knn

理论上,我们偏爱贝叶斯分类器去得到最优的模型。 但是实际上,我们并不知道特定点X对应的Y分布,因此不能够直接使用贝叶斯分类器。 但是,有很多方法,可以人工地构造条件概率分布,然后接着使用贝叶斯分类器。

KNN虽然很简单,但是它的error rate却可以很逼近最低的bayes error rate

R

Exercise

当数据中噪声的含量很大,也就是σ2=Var(ϵ)\sigma^2 = Var(\epsilon)很大的时候,应该用更inflexible的方法,因为越flexible的方法越fit噪声,造成variance的提高。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java闲聊

JDK1.8 ArrayList 源码解析

当运行 ArrayList<Integer> list = new ArrayList<>() ; ,因为它没有指定初始容量,所以它调用的是它的无参构造

1242
来自专栏学海无涯

Android开发之奇怪的Fragment

说起Android中的Fragment,在使用的时候稍加注意,就会发现存在以下两种: v4包中的兼容Fragment,android.support.v4.ap...

3215
来自专栏Java Edge

AbstractList源码解析1 实现的方法2 两种内部迭代器3 两种内部类3 SubList 源码分析4 RandomAccessSubList 源码:AbstractList 作为 Lis

它实现了 List 的一些位置相关操作(比如 get,set,add,remove),是第一个实现随机访问方法的集合类,但不支持添加和替换

622
来自专栏Hongten

ArrayList VS Vector(ArrayList和Vector的区别)_面试的时候经常出现

2232
来自专栏开发与安全

算法:AOV网(Activity on Vextex Network)与拓扑排序

在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,我们称之为AOV网(Activity on Vextex ...

3987
来自专栏项勇

笔记68 | 切换fragmengt的replace和add方法笔记

1524
来自专栏xingoo, 一个梦想做发明家的程序员

20120918-向量实现《数据结构与算法分析》

#include <iostream> #include <list> #include <string> #include <vector> #include...

1856
来自专栏Phoenix的Android之旅

Java 集合 Vector

List有三种实现,ArrayList, LinkedList, Vector, 它们的区别在于, ArrayList是非线程安全的, Vector则是线程安全...

692
来自专栏刘君君

JDK8的HashMap源码学习笔记

3298
来自专栏xingoo, 一个梦想做发明家的程序员

AOV网络拓扑排序

这个算法,主要是为输出一个无环图的拓扑序列 算法思想: 主要依赖一个栈,用来存放没有入度的节点,每次读取栈顶元素,并将栈顶元素的后继节点入度减一,如果再次出现入...

1975

扫码关注云+社区