K-近邻算法学习
根据你的“邻居“来推断你的类别
- 定义
如果一个样本在特征空间中的K个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别
欧氏距离
曼哈顿距离
切比雪夫距离
闵可夫斯基距离
标准化欧氏距离
余弦距离
汉明距离【Hamming Distance】
杰卡德距离【Janccard Distance】
使用sklearn
input: 已知类别数据集中点坐标,预测点坐标
output: 预测点的类别
for i in range(数据集中点的个数):
计算数据集中点与预测点之间的距离
对距离进行递增排序
选取距离最小的k个点
for j in range(选取的k个点):
统计这k个点所在类别出现的频率
return 出现频率最高的类别
k值的选择
一般选1,3,5.等,不选偶数值。
k值的减小意味着整体模型变得复杂,容易发生过拟合
k值的增大意味着模型变得简单,容易发生欠拟合
估计误差好才是真的好
近似误差–过拟合–在训练集上表现好,测试集表现不好
kd树
1.构造
树的建立
2.搜索
最近领域搜索