Topic:
- 加载数据集
- 数据划分
- 训练模型
- 模型预测
- 准确率计算
- K值选择
一、步骤
(1)加载数据集
本次使用的数据集为丁香花数据集course-9-syringa.csv
,丁香花数据集包含 daphne
,syringa
和 willow
等 3
个种类,即标签(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