K近邻(KNN)
1. K-Nearest Neighbour
K: 超参数(hyperparameter)
- 定义一种距离,参考第三节距离公式
- 计算预测点到其他训练数据的距离
- 找到最近的K个邻居
- 预测(进行投票)
1.1 特点:计算复杂
- 没有模型需要建立,只是保存了训练数据
- 把每一个没见过的数据和每一个训练数据做比较(即计算距离)
- m个训练数据,n个维度(K),空间复杂度为mn(即O(mn))
- 内存消耗高
- 对大数据集不可实践,资源消耗太大
- 有些改动可以帮助找到更有效的邻居,比如KD-Trees,ball trees
1.2 K的设置
KNN对K的设置非常敏感。如果没有使用加权距离,那么确定距离方式后,K就是唯一的超参数。
- 经验法则:k <= 训练集个数的开方
- 商业数据常用 10
- 更大的K 对于噪声有更好的鲁棒性
- 也可以做回归,取平均值
1.3 加权近邻 Weighted nearest neighbor
离得更近的享受更高的权重
e.g. w = 1/d^2
1.4 决策边界 Decision boundary
利用训练好的模型对样本空间所有的坐标点进行预测,然后观察样本空间所有点的不同类别之间的边界,最终就是模型的决策边界。
在二分类问题中,决策边界或决策表面是超曲面,其将基础向量空间划分为两个集合,一个集合。 分类器将决策边界一侧的所有点分类为属于一个类,而将另一侧的所有点分类为属于另一个类。可以通过绘制模型决策边界,来辅助判别分类模型的模型性能。
不同模型的决策边界并不相同,逻辑回归在二维样本空间中的决策边界是一条直线,KNN模型决策边界实际上是一个个圆圈叠加而成的拥有一定幅度的边界,而对于决策树模型来说,其决策边界实际上是一条条折线。
基于反向传播的人工神经网络或感知器的情况下,网络可以学习的决策边界的类型由网络具有的隐藏层的数量来确定。如果它没有隐藏层,那么它只能学习线性问题。如果它有一个隐藏层,则它可以学习Rn的紧致子集上的任何连续函数 ,如通用近似定理所示,因此它可以具有任意的决策边界。
神经网络试图学习决策边界,最小化经验误差,而支持向量机试图学习决策边界,最大化决策边界和数据点之间的经验边际。
Voronoi region
1近邻中叫做Voronoi region, 每个区域都包含了最近的所有点
2. KNN总结
- 准确
- 大数据很慢
- 需要标准化,因为要计算距离
- 多特征的数据集效率低,需要筛选
- k很重要
- 1950年开始被用在统计之中