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

代码:

复制代码
# 导入所需的库
from sklearn.datasets import load_iris  # 导入Iris数据集
from sklearn.model_selection import train_test_split  # 导入用于数据划分的train_test_split函数
from sklearn.preprocessing import MinMaxScaler, StandardScaler  # 导入数据归一化和标准化的类
from sklearn.neighbors import KNeighborsClassifier  # 导入K邻近分类器(KNN)

# 加载Iris数据集,包含特征数据和目标标签
iris = load_iris()

# 将数据集划分为训练集和测试集,其中20%作为测试集,80%作为训练集
x_train, x_test, y_train, y_test = train_test_split(iris['data'], iris['target'], test_size=0.2, random_state=42)

# 初始化MinMaxScaler,将特征缩放到[0, 1]的范围
transfer = MinMaxScaler(feature_range=(0, 1))

# 初始化StandardScaler,将特征进行标准化,均值为0,方差为1
transfer1 = StandardScaler()

# 对训练数据进行标准化
ret_train_data = transfer1.fit_transform(x_train)

# 对测试数据进行标准化
ret_test_data = transfer1.fit_transform(x_test)

# 设置KNN算法中的邻居数为5
n_neighbors_num = 5

# 初始化KNN分类器,设置邻居数
knn_model = KNeighborsClassifier(n_neighbors=n_neighbors_num)

# 用标准化后的训练数据训练KNN模型
knn_model.fit(ret_train_data, y_train)

# 用测试集数据进行预测
y_pre = knn_model.predict(ret_test_data)

# 输出预测结果
print("预测值是: \n", y_pre)

# 输出真实标签
print("真实值是 : \n", y_test)

# 对比预测值和真实值,输出是否一致的布尔值
print("预测值和真实值的对比是: \n", y_pre == y_test)

# 计算KNN模型在测试集上的准确率
score = knn_model.score(ret_test_data, y_test)

# 输出模型的准确率
print("准确率是: \n", score)

结果:

相关推荐
摘取一颗天上星️1 小时前
端到端记忆网络 vs 神经图灵机:外部记忆的两种哲学之争
网络·人工智能·深度学习·机器学习·lstm·外部记忆
要努力啊啊啊3 小时前
YOLOv3 训练与推理流程详解-结合真实的数据样例进行模拟
人工智能·yolo·机器学习·计算机视觉·目标跟踪
Takina~4 小时前
python打卡day53
python·深度学习·机器学习
Blossom.1184 小时前
基于深度学习的智能图像分类系统:从零开始构建
开发语言·人工智能·python·深度学习·神经网络·机器学习·分类
硅谷秋水13 小时前
NORA:一个用于具身任务的小型开源通才视觉-语言-动作模型
人工智能·深度学习·机器学习·计算机视觉·语言模型·机器人
mwicogito16 小时前
实验复现:应用 RIR 触发器的 TrojanRoom 后门攻击实现
人工智能·python·机器学习·语音识别·后门攻击
诺亚凹凸曼18 小时前
用AI思维重塑人生:像训练神经网络一样优化自己
人工智能·机器学习
HyperAI超神经18 小时前
在线教程丨刷新TTS模型SOTA,OpenAudio S1基于200万小时音频数据训练,深刻理解情感及语音细节
人工智能·深度学习·机器学习·文本转语音·语音处理·语音生成·在线教程
Shining_Jiang19 小时前
打卡第44天:无人机数据集分类
人工智能·分类·数据挖掘
sbc-study20 小时前
深度自编码器 (Deep Autoencoder, DAE)
人工智能·机器学习