sklearn学习之用matplotlib绘制鸢尾花(Iris)数据集的两个特征:花萼的长度和宽度

2023-12-31 04:56:08

直接上代码

sklearn Iris 数据集是机器学习和数据科学中经常使用的一个标准数据集,用于分类任务

from sklearn import datasets  
  
# 加载 Iris 数据集  
iris = datasets.load_iris()  
  
# 查看数据集中的特征名称  
print("特征名称:", iris.feature_names)  
  
# 查看数据集中的目标类别(鸢尾花的种类)  
print("目标类别:", iris.target_names)  
  
# 查看数据集中的前 5 个样本  
print("前 5 个样本:\n", iris.data[:5])  
  
# 查看这 5 个样本对应的类别标签  
print("对应的类别标签:", iris.target[:5])

在这里插入图片描述

描制

# 导入所需的库和模块  
from collections import Counter, defaultdict  # 用于计数和默认字典  
import matplotlib  # 绘图库  
import matplotlib.pyplot as plt  # 绘图库的pyplot模块,用于绘图  
import numpy as np  # 用于数值计算的库  
from sklearn import datasets  # 从scikit-learn库中导入数据集模块  
  
# 加载鸢尾花数据集  
iris_datas = datasets.load_iris()  # 加载数据集,并存储在iris_datas变量中  Iris 数据集是机器学习和数据科学中经常使用的一个标准数据集,用于分类任务
  
# 设置matplotlib的字体和符号,以便正常显示中文和负号  
plt.rcParams['font.sans-serif']=['SimHei']  # 设置字体为SimHei,用于正常显示中文标签  
plt.rcParams['axes.unicode_minus']=False  # 设置正常显示负号  
  
# 设置点的不同形状,不同形状默认颜色不同,也可自定义  
style_list = ['o', '^', 's']    
  
# 从数据集中提取特征和标签  
data = iris_datas.data  # 提取特征数据  
labels = iris_datas.target_names  # 提取标签名称  
  
# 使用defaultdict创建一个字典,用于按标签分类存储数据  
cc = defaultdict(list)  
for i, d in enumerate(data):  
    cc[labels[int(i/50)]].append(d)  # 将每个数据点根据其标签添加到相应的列表中  
# 创建空列表,用于存储绘制的图形和类别名称  
p_list = []  # 存储绘制的图形  
c_list = []  # 存储类别名称  
  
# 循环遍历,分别绘制花萼和花瓣的长度和宽度关系图  
for each in [0, 2]:  # each为0时绘制花萼,为2时绘制花瓣  
    for i, (c, ds) in enumerate(cc.items()):  # 遍历每个类别及其对应的数据点  
        draw_data = np.array(ds)  # 将数据转换为numpy数组,方便后续处理  
        # 绘制散点图,x轴为长度,y轴为宽度,形状根据类别设置  
        p = plt.plot(draw_data[:, each], draw_data[:, each+1], style_list[i])  
        p_list.append(p)  # 将绘制的图形添加到列表中  
        c_list.append(c)  # 将类别名称添加到列表中  
    # 设置图例,标题和坐标轴标签  
    plt.legend(map(lambda x: x[0], p_list), c_list)  # 设置图例,显示类别名称和对应的图形  
    plt.title('鸢尾花花瓣的长度和宽度') if each else plt.title('鸢尾花花萼的长度和宽度')  # 设置标题  
    plt.xlabel('花瓣的长度(cm)') if each else plt.xlabel('花萼的长度(cm)')  # 设置x轴标签  
    plt.ylabel('花瓣的宽度(cm)') if each else plt.ylabel('花萼的宽度(cm)')  # 设置y轴标签  
    plt.show()  # 显示图形

在这里插入图片描述

文章来源:https://blog.csdn.net/hzether/article/details/135237020
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。