一、K-近邻算法
1.K-近邻算法(KNN)概念
K Nearest Neighbor算法又叫KNN算法,这个算法是机器学习当中的一个比较经典的算法,总体来说KNN算法是相对比较容易理解的算法。
-
定义
如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
-
距离公式
两个样本的距离可以通过欧式距离进行计算
- KNN算法流程
- 计算已知类别数据集中的点与当前点之间的距离
- 按距离递增次序排序
- 选取与当前点距离最小的k个点
- 统计前k个点所在的类别出现的频率
- 返回前k个点出现频率最高的类别作为当前点的预测分类
其实k-近邻算法就是通过你的“邻居”来判断你属于那个类别
2.K-近邻算法API
准备:
- 需要安装Scikit-learn工具
- Scikit-learn是python语言的机器学习工具
- Scikit-learn包括许多指明的机器学习算法的实现
- Scikit-learn文档完善,容易上手,丰富的API
- pip3 install scikit-learn==0.19.1
- 注意:安装scikit-learn的前提需要先安装好Numpy,Scipy库
2.1 K-近邻算法的API使用
- sklearn.neighbors.KNeighborsClassifier(n_neighbors=5)
- n_neighbors:int,可选,默认为5。查询默认使用的邻居数
2.2 示例
from sklearn.neighbors import KNeighborsClassifier
x = [[0], [1], [2], [3]]
y = [0, 0, 1, 1]
# 实例化API
estimator = KNeighborsClassifier(n_neighbors=2)
# 使用fit方法进行训练
estimatro.fit(x,y)
# 求出预测值
estimator.predict([[1]])