第1章 统计学习方法概论
统计学习
简述之,从数据中挖掘规律,并形式化表现这种规律并将之应用在将来的数据之中,其实现在的机器学习方法都是离不开统计学原理的,这也就是本人结合李航的《统计学习方法》来编写统计学习的相关基础算法的初衷。一些基本的概念这里不再赘述,统计学习方法包含了监督式学习、非监督式学习、半监督式学习和强化学习等。这里也先假定每个读者对这些概念已经有了一些初步的了解,如果不了解,也没有关系,这个教程将会在之后的章节里对这些概念进行实际地操作,尽可能会让每个读者都能有所收获。
另外,由于原书实际是一本教材,且某些概念之所以出现也是属于按照教材编排的风格设计的,但这样一开始就涉及了大量的基本概念,对于想从事机器学习的读者来说,可能会吃不消,这里我将只会在第一章编写最需要要理解的概念,至于其他的概念,本教程将在具体应用到时候具体描述和讲解。
本章删繁就简,只提炼原书的核心内容:
- 输入空间、特征空间、输出空间:
每个具体的样本实例(instanceinstanceinstance)在统计学习方法中实际表示为一个向量,叫做特征向量,而这个特征向量所存在的空间,称之为特征空间,通常这个向量表示为列向量xxx,即有
KaTeX parse error: Got function '\left' with no arguments as superscript at position 13: x = \left( x^̲\left(1\right),…
其中,KaTeX parse error: Got function '\left' with no arguments as superscript at position 2: x^̲\left(i\right)表示xxx的第iii个特征,注意,KaTeX parse error: Got function '\left' with no arguments as superscript at position 2: x^̲\left(i\right)和xix_ixi不同,这里通常用xix_ixi表示多个输入变量的第iii个,即有
KaTeX parse error: Got function '\left' with no arguments as superscript at position 17: …_i = \left( x_i^̲\left(1\right),…
当有许多xxx组成所有的输入时,记为XXX,XXX中的所有的xix_ixi所对应的yiy_iyi记为YYY,YYY是一个类别标签向量,通常对于“类别标签”这个词,简称为“类标”。
- 补充
读者可能会好奇,通常一行xxx对应一个yyy是很好理解的,如下所示,其中,XXX数据包含了mmm个实例,每个实例有nnn个属性:
KaTeX parse error: Got function '\left' with no arguments as superscript at position 169: …in{bmatrix} x_1^̲\left( 1 \right…
为什么要把xxx弄成列呢?原因是这这样的,由于在之后的统计学习的方法中,需要反复使用一个式子,即f(x)=w⋅x+bf\left(x\right) = w \cdot x+bf(x)=w⋅x+b,即“参数乘以样本加偏置项”,此时,从矩阵运算角度来讲,www是横向量,xxx是列向量,w⋅x+bw \cdot x+bw⋅x+b的结果f(x)f\left(x\right)f(x)就成为了一个常数项,如果不这样,xxx表现为上图中的横向量,那就需要将这个www和xxx就需要来回倒腾,很麻烦,所以,对于数学分析来讲,这里定义xxx是一个列向量是极好的。但是直观来讲,上面的式子对整个训练集的表现形式更符合人类直观的理解(至少我很喜欢这种表现形式,主要看着好看哈哈哈,= =~)。
- 关于统计学习方法以及机器学习方法的本质描述
由XXX决定YYY的过程实际是一个模型所要所的事情,这个模型,可以有两种理解:第一,是一个概率关系,即有XXX的分布来确定YYY的分布,并且它是一种条件概率分布的关系,有P(Y∣X)P\left( Y |X\right)P(Y∣X)
第二种,即函数关系,当有XXX的时候,可以通过一种函数关系映射将之表现为YYY,此时,有
Y=f(X)Y=f\left(X\right)Y=f(X)
当新的样本进来要用模型去预测其可能的结果的时候,可以形式化得将刚才得到的PPP和f()f()f()应用在新的样本xxx上,则预测的过程记为P(y∣x)P\left(y|x\right)P(y∣x)或者y=f(x)y=f\left(x\right)y=f(x)
至于原书中其他的概念,如损失函数、过拟合与欠拟合等,本文不打算详细描述了,这个一方面需要弄懂的话也不是简简单单描述完就没事儿了,还是需要动手,之后每个章节对算法进行描述的时候,若是涉及到了相关概念,也会具体说明一下,而且结合案例来讲概念,或许更有利于理解。