【机器学习】使用scikit-learn中的KNN包实现对鸢尾花数据集或者自定义数据集的的预测

一、KNN算法概念

K最近邻(K-Nearest Neighbor,KNN)分类算法是数据挖掘分类技术中最简单的方法之一,是著名的模式识别统计学方法,在机器学习分类算法中占有相当大的地位。它是一个理论上比较成熟的方法。既是最简单的机器学习算法之一,也是基于实例的学习方法中最基本的,又是最好的文本分类算法之一。

二、对鸢尾花数据集进行预测

1、代码示例:

复制代码
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# 加载鸢尾花数据集
iris = load_iris()
# 提取特征
X = iris.data
# 提取标签
y = iris.target

# 将数据集划分为训练集和测试集,测试集占比20%
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建KNN分类器,设置K值为3
knn = KNeighborsClassifier(n_neighbors=3)

# 使用训练集对KNN分类器进行训练
knn.fit(X_train, y_train)

# 使用训练好的模型对测试集进行预测
y_pred = knn.predict(X_test)

# 计算预测准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"鸢尾花数据集预测准确率: {accuracy}")

2、代码解释

①借助load_iris()函数加载鸢尾花数据集。

②把数据集拆分为特征X和标签y

③运用train_test_split()函数将数据集按 80% 训练集、20% 测试集的比例划分。

④四创建KNeighborsClassifier对象,设定n_neighbors为 3,也就是 K 值为 3。

⑤利用fit()方法对模型进行训练。

⑥使用predict()方法对测试集进行预测。

⑦最后通过accuracy_score()函数算出预测准确率。

三、对自定义数据集进行预测

1、代码示例

复制代码
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# 自定义数据集
# 特征矩阵
X = np.array([[1, 2], [2, 3], [3, 1], [4, 2], [5, 3], [6, 1]])
# 标签向量
y = np.array([0, 0, 0, 1, 1, 1])

# 将数据集划分为训练集和测试集,测试集占比20%
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建KNN分类器,设置K值为3
knn = KNeighborsClassifier(n_neighbors=3)

# 使用训练集对KNN分类器进行训练
knn.fit(X_train, y_train)

# 使用训练好的模型对测试集进行预测
y_pred = knn.predict(X_test)

# 计算预测准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"自定义数据集预测准确率: {accuracy}")

2、代码解释

①手动构建自定义的特征矩阵X和标签向量y

②同样使用train_test_split()函数把数据集划分为训练集和测试集。

③创建KNeighborsClassifier对象并设定 K 值。

④用fit()方法训练模型。

⑤利用predict()方法预测测试集。

⑥最后用accuracy_score()函数计算预测准确率。

可以根据实际需求调整 K 值以及数据集,以此来观察预测结果的变化。

相关推荐
程序员三藏35 分钟前
接口测试及常用接口测试工具总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
Liue612312311 小时前
基于YOLOv26的口罩佩戴检测与识别系统实现与优化
人工智能·yolo·目标跟踪
小二·2 小时前
Python Web 开发进阶实战 :AI 原生数字孪生 —— 在 Flask + Three.js 中构建物理世界实时仿真与优化平台
前端·人工智能·python
chinesegf2 小时前
文本嵌入模型的比较(一)
人工智能·算法·机器学习
珠海西格电力3 小时前
零碳园区的能源结构优化需要哪些技术支持?
大数据·人工智能·物联网·架构·能源
Black蜡笔小新3 小时前
视频汇聚平台EasyCVR打造校园消防智能监管新防线
网络·人工智能·音视频
珠海西格电力科技3 小时前
双碳目标下,微电网为何成为能源转型核心载体?
网络·人工智能·物联网·云计算·智慧城市·能源
2501_941837263 小时前
【计算机视觉】基于YOLOv26的交通事故检测与交通状况分析系统详解_1
人工智能·yolo·计算机视觉
HyperAI超神经3 小时前
加州大学构建基于全连接神经网络的片上光谱仪,在芯片级尺寸上实现8纳米的光谱分辨率
人工智能·深度学习·神经网络·机器学习·ai编程
hmywillstronger3 小时前
【Rhino】【Python】 查询指定字段并cloud标注
开发语言·python