机器学习方法与技术详解
1. 支持向量机(SVM)
1.1 特征空间表示
在分类新点时,可以用点到所有输入点的距离来表示该点。对于每个点 $p_i$,可以创建一个向量 $v_i$,其中 $v_{ij} = dist(i, j)$,即 $p_i$ 到 $p_j$ 的距离。这些距离向量可以作为强大的特征集来对新点 $q$ 进行分类,因为到实际类别成员的距离通常比到其他类别的距离小。
不过,将原始的 $n × d$ 特征矩阵转换为新的 $n × n$ 特征矩阵存在空间问题。输入点的数量 $n$ 通常远大于数据的维度 $d$,这种转换只适用于较小的点集(如 $n ≤ 1000$)。而且处理高维点的计算成本很高,因为每次距离评估的时间复杂度与点的数量 $n$ 呈线性关系,而不是数据维度 $d$。
1.2 核函数
支持向量机的神奇之处在于,不需要显式计算距离 - 特征矩阵。寻找最大间隔分隔器的优化过程只涉及点与其他点和向量的点积。因此,可以在需要比较时动态进行距离扩展,无需预先计算距离矩阵,在完成距离计算后丢弃扩展结果,从而消除空间瓶颈。
但这种方法的计算时间成本仍然很高。而核函数可以在不构建更大向量的情况下返回本质上是大向量的距离计算结果。使用核函数的支持向量机能够以较低的额外成本在各种非线性函数中找到最佳分隔器。
核函数使支持向量机能够将 $d$ 维点投影到 $n$ 维空间进行分离,且计算步骤不超过 $d$ 步。不过,支持向量机的有效使用需要经验,有多种不同的核函数,每种在特定数据集上都有优势,需要调整像 LibSVM 这样的工具选项以获得最佳性能,它最适用于中等规模的数据集(数千个而非数百万个点)。
超级会员免费看
订阅专栏 解锁全文
5076

被折叠的 条评论
为什么被折叠?



