特征映射与核函数
特征映射
引入目的:将数据映射到高维空间是为了解决数据在低维空间线性不可分。
特征映射记做\(\phi(x)\),等于向量\(x1\)和\(x2\)的内积\(<x_1,x_2>\)。内积可以反映2个向量的相似度。
\(\phi(x)\)将数据映射到更高维的空间,如果这个高维空间内与
是线性可分的,那么\(\phi(x)\)就是一个有意义的映射。
\(\phi(x)\)可以反映出数据隐藏的特征。
核函数
引入目的:直接在低维空间中完成计算,而不需要显式地写出映射后的结果,避免了在高维的计算,结果却是等价的!
实质:一种减少计算量的数学技巧。
核函数只是用来计算映射到高维空间之后的内积的一种简便方法。
核函数和映射没有关系。
定义:\(K\left(x_{1}, x_{2}\right)=\phi\left(x_{1}\right)^T * \phi\left(x_{2}\right)\)
常见的核函数
https://blog.csdn.net/mengjizhiyou/article/details/103437423
什么样的核函数适用于什么样的问题,这是玄学。
核函数性质
- 核函数给出了任意两个样本之间关系的度量,比如相似度。
- 每一个能被叫做核函数的函数,里面都藏着一个对应拉伸的函数。这些核函数的命名通常也跟如何做拉伸变换有关系。
- 核函数和映射本身没有直接关系。选哪个核函数,实际上就是在选择用哪种方法映射。通过核函数,我们就能跳过映射的过程。
- 我们只需要核函数,而不需要那个映射,也无法显式的写出那个映射。
- 选择核函数就是把原始数据集上下左右前后拉扯揉捏,直到你一刀下去正好把所有的 0 分到一边,所有的 1 分到另一边。这个上下左右前后拉扯揉捏的过程就是kernel。
核函数的优劣
劣势:
- 为给定的问题选择核函数可能很困难。
- 对于大型数据集,可能无法存储整个核函数矩阵,可能需要重新计算核函数。
优势:
- 核函数在某些特征空间通过点积的方式计算,但无需知道特征空间以及转换函数。这就是核函数的有用之处。
- 使在高维空间中以极低的计算成本寻找线性关系成为可能,这是因为在特征空间中输入图像的内积可以在原始空间中计算出来。
- 不需要数据是真实的向量,可用于字符串、时序数据。