1 K-紧邻算法简介
1.1 什么是K-近邻算法
直观上理解,就是根据距离的远近来判断你所处于的类别。
但是,也会存在一些问题,距离最近的样本所属于的类别与你需要判断的类别可能不是同一种类别。
1.1 KNN概念
K Nearest Neighbor
算法又叫做KNN算法,这个算法是机器学习里面比较经典的算法,总体来说KNN算法是相对比较容易理解的算法。
-
定义
如果一个样本再特征空间中的k个最相似(即特征空间中最邻近)的样本大多数属于某一个类别,则该样本也属于这个类别。 -
距离公式
两个样本的距离可以通过如下公式计算,又叫欧氏距离,关于距离公式会在后面进行讨论
2 K紧邻算法API
Scikit-learn工具介绍
- Python语言的机器学习工具
- Scikit-learn包括许多知名的机器学习算法的实现
- Scikit-learn文档完善,容易上手,丰富的API
- 目前稳定版本1.4.2
安装
pip install scikit-learn==1.4.2
安装完成后可以通过以下命令查看是否安装成功
import sklearn
- 安装scikit-learn时需要依赖numpy、scipy等库
API使用
sklearn.neighbors.KNeighborsClassifier(n_neighbors=5)
案例
"""
scikit-learn中关于knn的简单案例
"""
from sklearn.neighbors import KNeighborsClassifier
# 获取数据
x = [[1], [2], [3], [4]]
y = [1, 1, 0, 0]
# 机器学习
# 实例化一个训练模型
estimator = KNeighborsClassifier(n_neighbors=2)
# 调用fit方法进行训练
estimator.fit(x, y)
# 预测其它值
ret = estimator.predict([[10]])
print(ret)
3 距离度量
欧氏距离
欧式距离时最容易直观理解的距离度量方法。
曼哈顿距离(Manhattan Distance)
在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。曼哈顿距离也称为“城市街区距离”(City Block Distance)
标签:KNN,neighbors,近邻,距离,算法,learn,类别 From: https://www.cnblogs.com/Gazikel/p/18162506