2022更文挑战8-k最邻近算法

178 阅读2分钟

「这是我参与2022首次更文挑战的第8天,活动详情查看:2022首次更文挑战」。

k最邻近算法

前文

本文为在机器学习相关内容入门阶段的一些总结,有很多不足之处,不代表完全正确。

k最邻近算法也可以称为KNN算法,也就是k nearest neighbor。其大意也就是在样本空间的范围内,如果有k个最相似样本都属于同一类别,那么就认为该样本属于这个类别。该算法主要是采用邻近样本的特征值进行归类,得到目标节点的类别。

算法的应用

该算法主要有两个方向的用法,其一是k最邻近算法的分类,另一种就是k最邻近算法的回归。其实二者基本上是出于同源,利用k个样本节点的邻近计算,判断新节点是归属于哪一类数据,或者是对于目标节点,利用样本节点获取k个最邻近点的数值,将其取平均值得到预测的目标值。两者的思路大体上是完全相同的。

下面简单来看一个酒分类的例子:

首先看一下实际的代码。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
# 载入数据集
wine_dataset = load_wine()

# 数据集拆分
X_train,X_test,y_train,y_test = train_test_split(wine_dataset['data'],wine_dataset['target'],random_state=0)

# 使用k最邻近算法建模
knn = KNeighborsClassifier(n_neighbors = 1)
# 数据拟合
knn.fit(X_train,y_train)


# 根据特征值进行酒分类预测
prediction = knn.predict(X_new)
print(wine_dataset['target_names'][prediction])

如上面一段书中学习得到的预测代码来看,首先从sklearn包中获取酒分类的数据集。利用数据集作为k最邻近算法的样本数据。经过对数据的处理,将数据拆分为测试数据以及训练数据。利用训练数据进行分类的机器学习,并利用测试数据进行学习效果总结。可以得到学习的成功率大概在70%以上。同时利用该训练结果,输入任意节点的数据,都可以预测得到该数据属于哪一种酒类的分类。以上,也就是该算法实现的主要思路,核心在于利用knn算法进行数据拟合建模。

后记

  • 千古兴亡多少事?悠悠。不尽长江滚滚流。