python|数据分析【机器学习】-KNN分类模型

KNN分类模型的原理与使用
目录
文章目录
前言
一、KNN模型
1.概念
2.距离
3.k值的重要性
二、使用步骤(鸢尾花分类的实现)
1.引入库
2.读入数据
3.训练模型
4.模型的评价
5.对未知数据的分类
总结

前言 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的分中的KNN模型。KNN模型可以用来解决分类和回归问题。

一、KNN模型 1.概念
简单的说,K-近邻算法采用不同特征值之间的距离方法进行的分类。KNN分类器根据多数表决原则确定数据点的类别。如果k设置为5,则检查5个最近点的类别。也可以根据多数类进行回归预测,同样,KNN回归取5个最近点的平均值。
python|数据分析【机器学习】-KNN分类模型
文章图片

2.距离
KNN不用曼哈顿距离,因为它只计算水平或垂直距离,有维度的限制。另一方面,欧氏距离可用于任何空间的距离计算问题。因为,数据点可以存在于任何空间,欧氏距离是更可行的选择。
python|数据分析【机器学习】-KNN分类模型
文章图片

3.k值的重要性
如果k值太低,则模型会变得过于具体,不能很好地泛化。它对噪音也很敏感。该模型在训练组上实现了很高的精度,但对于新的、以前看不到的数据点,该模型的预测能力较差。因此,我们很可能最终得到一个过拟合的模型。
如果k选择得太大,模型就会变得过于泛化,无法准确预测训练和测试集中的数据点。这种情况被称为欠拟合。

二、使用步骤(鸢尾花分类的实现) 1.引入库 代码如下(示例):
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings import sklearn.datasets as datasets from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import train_test_split warnings.filterwarnings('ignore')

2.读入数据 代码如下(示例):
#1.捕获鸢尾花数据 iris = datasets.load_iris() #2.提取样本数据 feature = iris['data'] target = iris['target'] #3.数据集进行拆分 x_train,x_test,y_train,y_test = train_test_split(feature,target,test_size=0.2,random_state=2020) #测试集占总数据0.2

3.训练模型
# 实例化模型对象 knn = KNeighborsClassifier(n_neighbors=6) #n_neighbors == k# 使用训练集数据训练模型 #X:训练集的特征数据.特征数据的维度必须是二维。 #y:训练集的标签数据 knn = knn.fit(x_train,y_train)# 测试模型:使用测试数据 #predict表示使用训练好的模型实现分类或者预测 y_pred = knn.predict(x_test) #模型基于测试数据返回的分类结果 y_true = y_test #测试集真实的分类结果 print('模型的分类结果:',y_pred) print('真实的分类结果:',y_true)

4.模型的评价
knn.score(x_test,y_test)

5.对未知数据的分类
knn.predict([[6.1,3.1,4.7,2.1]]) #未知数据进行了分类

总结 【python|数据分析【机器学习】-KNN分类模型】
例如:以上就是今天要讲的内容,本文仅仅简单介绍了KNN分类模型的原理和sklearn库的使用,

    推荐阅读