KNN算法案例-鸢尾花分类

KNN算法案例-鸢尾花分类

鸢尾花

  • 因为气候不同,造就性不同,统计鸢尾花的关键特征数据:花萼长度、花萼宽度、花瓣长度,花瓣宽度
  • 植物学家划分:
    • setosa(中文名:山鸢尾)
    • versicolor(中文名:杂色鸢尾)
    • virginica(中文名:弗吉尼亚鸢尾)
  • 鸢尾花数据集中每个样本包含有四个特种(花萼长度、花萼宽度、花瓣长度,花瓣宽度),用于对鸢尾花的分类

2 KNN算法建模

  • 加载数据
  • 数据预处理,拆分
  • 声明算法,给定超参数k
  • 训练算法,拟合数据,归纳规律
  • 算法应用,样本预测

首先我们需要导入包

from sklearn import datasets  # 数据集
from sklearn.neighbors import KNeighborsClassifier  # 分类
from sklearn.model_selection import train_test_split  # 数据集拆分

3 实现

3.1 加载数据

# 获取到数据集
datasets.load_iris()

我们会获取到两组数据:

数据说明:
X :存储的是鸢尾花的四个特征值(花萼长度、花萼宽度、花瓣长度,花瓣宽度)
y : 存储的是鸢尾花的分类:- setosa(中文名:山鸢尾),versicolor(中文名:杂色鸢尾),virginica(中文名:弗吉尼亚鸢尾)
x:

y:
在这里插入图片描述

3.1.1 给x,y的数据进行赋值:

# X 表示数据,y 表示目标值
X, y = datasets.load_iris(return_X_y=True)  # return_X_y值输出x,y
display(X, y)

3.2 数据拆分

# train 训练数据  ,test 测试数据集
X_train, X_test, y_train, y_test = train_test_split(X, y,  # 表示要拆分的数据
                                                    test_size=0.2,  # 拆分的比例,测试数据的比例
                                                    random_state=1024  # 固定了随机状态,为了固定拆分的方式
                                                    )
# 查看拆分的形状
display(X_train.shape, X_test.shape, y_train.shape, y_test.shape)

3.3 算法建模、拟合、训练

model = KNeighborsClassifier(n_neighbors=5)
model.fit(X_train, y_train)  # 建模、拟合、训练

3.4 算法预测

y_ = model.predict(X_test)
y_  # 预测值
print('保留的测试数据', y_test)

对预测的值和真实的值进行对比
在这里插入图片描述

3.5 准确率的计算

(y_ == y_test).mean()
model.score(X_test,y_test)

准确率的计算

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿龙的代码在报错

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值