K-近邻算法

K-近邻算法学习

根据你的“邻居“来推断你的类别

  • 定义
    如果一个样本在特征空间中的K个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别

欧氏距离

K-近邻算法_第1张图片

曼哈顿距离

K-近邻算法_第2张图片

切比雪夫距离

K-近邻算法_第3张图片

闵可夫斯基距离

K-近邻算法_第4张图片

标准化欧氏距离

K-近邻算法_第5张图片

余弦距离

K-近邻算法_第6张图片

汉明距离【Hamming Distance】

K-近邻算法_第7张图片

杰卡德距离【Janccard Distance】

K-近邻算法_第8张图片

使用sklearn

input: 已知类别数据集中点坐标,预测点坐标
output: 预测点的类别

for i in range(数据集中点的个数):
	计算数据集中点与预测点之间的距离
对距离进行递增排序
选取距离最小的k个点
for j in range(选取的k个点):
	统计这k个点所在类别出现的频率
return 出现频率最高的类别

k值的选择

一般选1,3,5.等,不选偶数值。
k值的减小意味着整体模型变得复杂,容易发生过拟合
k值的增大意味着模型变得简单,容易发生欠拟合
估计误差好才是真的好
近似误差–过拟合–在训练集上表现好,测试集表现不好

kd树

1.构造
树的建立

K-近邻算法_第9张图片
2.搜索
最近领域搜索

案例:鸢尾花种类预测

你可能感兴趣的:(近邻)