【MachineLearning】之 K-近邻分类预测(实战)

本文详细介绍了K-近邻(KNN)分类算法在丁香花数据集上的应用。首先,加载数据并使用Pandas进行数据预处理,接着进行数据划分,将数据集分为训练集和测试集。然后,利用sklearn库的KNN模型进行训练,探讨了不同K值对模型性能的影响。最后,通过计算准确率选择最优的K值,以提高模型预测的准确性。
摘要由CSDN通过智能技术生成
Topic:
  1. 加载数据集
  2. 数据划分
  3. 训练模型
  4. 模型预测
  5. 准确率计算
  6. K值选择

一、步骤


(1)加载数据集

本次使用的数据集为丁香花数据集course-9-syringa.csv,丁香花数据集包含 daphnesyringawillow3 个种类,即标签(labels),其中每个种类包含 150 条数据,每条数据包含 4 个特征值:花萼长度花萼宽度花瓣长度花瓣宽度。利用 Pandas 将其导入成 DataFrame 格式。

# 下载数据集
!wget http://labfile.oss.aliyuncs.com/courses/1081/course-9-syringa.csv
"""加载数据集
"""
import pandas as pd

lilac_data = pd.read_csv('course-9-syringa.csv')
lilac_data.head()  # 预览前 5 行

这里写图片描述



为了使我们对数据更加了解,同样我们用 plt 将各个数据的特征绘制出来。由于丁香花数据集有 4 个特征值,在二维空间中无法直接表示,所以只有采用特征组合的方式绘画特征分布图。下面将 4 个特征,进行两两组合得到 6 种情况,并采用子图的方式进行绘制。

from matplotlib import pyplot as plt
"""绘制丁香花特征子图
"""
fig, axes = plt.subplots(2, 3, figsize=(20, 10))  # 构建生成 2*3 的画布,2 行 3 列
fig.subplots_adjust(hspace=0.3, wspace=0.2)  # 定义每个画布内的行间隔和高间隔
axes[0, 0].set_xlabel("sepal_length")  # 定义 x 轴坐标值
axes[0, 0].set_ylabel("sepal_width")  # 定义 y 轴坐标值
axes[0, 0].scatter(lilac_data.sepal_length[:50],
                   lilac_data.sepal_width[:50], c="b")
axes[0, 0].scatter(lilac_data.sepal_length[50:100],
                   lilac_data.sepa
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值