机器学习算法------1.6 案例:鸢尾花种类预测--数据集介绍(scikit-learn中数据集介绍)

1.6 案例:鸢尾花种类预测–数据集介绍

学习目标

  • 目标
    • 知道sklearn中获取数据集的方法
    • 知道sklearn中对数据集的划分方法

本实验介绍了使用Python进行机器学习的一些基本概念。 在本案例中,将使用K-Nearest Neighbor(KNN)算法对鸢尾花的种类进行分类,并测量花的特征。

本案例目的:

  1. 遵循并理解完整的机器学习过程
  2. 对机器学习原理和相关术语有基本的了解。
  3. 了解评估机器学习模型的基本过程。

1 案例:鸢尾花种类预测

Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。关于数据集的具体介绍:

在这里插入图片描述

2 scikit-learn中数据集介绍

2.1 scikit-learn数据集API介绍

  • sklearn.datasets
    • 加载获取流行数据集
    • datasets.load_*()
      • 获取小规模数据集,数据包含在datasets里
    • datasets.fetch_*(data_home=None)
      • 获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是 ~/scikit_learn_data/
2.1.1 sklearn小数据集
  • sklearn.datasets.load_iris()

    加载并返回鸢尾花数据集

在这里插入图片描述

2.1.2 sklearn大数据集
  • sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’)
    • subset:‘train’或者’test’,‘all’,可选,选择要加载的数据集。
    • 训练集的“训练”,测试集的“测试”,两者的“全部”

2.2 sklearn数据集返回值介绍

  • load和fetch返回的数据类型datasets.base.Bunch(字典格式)
    • data:特征数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组
    • target:标签数组,是 n_samples 的一维 numpy.ndarray 数组
    • DESCR:数据描述
    • feature_names:特征名,新闻数据,手写数字、回归数据集没有
    • target_names:标签名
from sklearn.datasets import load_iris
# 获取鸢尾花数据集
iris = load_iris()
print("鸢尾花数据集的返回值:\n", iris)
# 返回值是一个继承自字典的Bench
print("鸢尾花的特征值:\n", iris["data"])
print("鸢尾花的目标值:\n", iris.target)
print("鸢尾花特征的名字:\n", iris.feature_names)
print("鸢尾花目标值的名字:\n", iris.target_names)
print("鸢尾花的描述:\n", iris.DESCR)

2.3 查看数据分布

通过创建一些图,以查看不同类别是如何通过特征来区分的。 在理想情况下,标签类将由一个或多个特征对完美分隔。 在现实世界中,这种理想情况很少会发生。

  • seaborn介绍

    • Seaborn 是基于 Matplotlib 核心库进行了更高级的 API 封装,可以让你轻松地画出更漂亮的图形。而 Seaborn 的漂亮主要体现在配色更加舒服、以及图形元素的样式更加细腻。

    • 安装 pip3 install seaborn

    • seaborn.lmplot() 是一个非常有用的方法,它会在绘制二维散点图时,自动完成回归拟合

      • sns.lmplot() 里的 x, y 分别代表横纵坐标的列名,
      • data= 是关联到数据集,
      • hue=*代表按照 species即花的类别分类显示,
      • fit_reg=是否进行线性拟合。
    • 参考链接: api链接

# 内嵌绘图
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

# 把数据转换成dataframe的格式
iris_d = pd.DataFrame(iris['data'], columns = ['Sepal_Length', 'Sepal_Width', 'Petal_Length', 'Petal_Width'])
iris_d['Species'] = iris.target

def plot_iris(iris, col1, col2):
    sns.lmplot(x = col1, y = col2, data = iris, hue = "Species", fit_reg = False)
    plt.xlabel(col1)
    plt.ylabel(col2)
    plt.title('鸢尾花种类分布图')
    plt.show()
plot_iris(iris_d, 'Petal_Width', 'Sepal_Length')

在这里插入图片描述

2.4 数据集的划分

机器学习一般的数据集会划分为两个部分:

  • 训练数据:用于训练,构建模型
  • 测试数据:在模型检验时使用,用于评估模型是否有效

划分比例:

  • 训练集:70% 80% 75%
  • 测试集:30% 20% 25%

数据集划分api

  • sklearn.model_selection.train_test_split(arrays, *options)
    • 参数:
      • x 数据集的特征值
      • y 数据集的标签值
      • test_size 测试集的大小,一般为float
      • random_state 随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同。
    • return
      • x_train, x_test, y_train, y_test
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 1、获取鸢尾花数据集
iris = load_iris()
# 对鸢尾花数据集进行分割
# 训练集的特征值x_train 测试集的特征值x_test 训练集的目标值y_train 测试集的目标值y_test
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=22)
print("x_train:\n", x_train.shape)
# 随机数种子
x_train1, x_test1, y_train1, y_test1 = train_test_split(iris.data, iris.target, random_state=6)
x_train2, x_test2, y_train2, y_test2 = train_test_split(iris.data, iris.target, random_state=6)
print("如果随机数种子不一致:\n", x_train == x_train1)
print("如果随机数种子一致:\n", x_train1 == x_train2)

3 总结

  • 获取数据集【知道】
    • 小数据:
      • sklearn.datasets.load_*
    • 大数据集:
      • sklearn.datasets.fetch_*
  • 数据集返回值介绍【知道】
    • 返回值类型是bunch–是一个字典类型
    • 返回值的属性:
      • data:特征数据数组
      • target:标签(目标)数组
      • DESCR:数据描述
      • feature_names:特征名,
      • target_names:标签(目标值)名
  • 数据集的划分【掌握】
    • sklearn.model_selection.train_test_split(arrays, *options)
    • 参数:
      • x – 特征值
      • y – 目标值
      • test_size – 测试集大小
      • ramdom_state – 随机数种子
    • 返回值:
      • x_train, x_test, y_train, y_test
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ImageNet数据集是一个庞大的图像分类数据集,包含超过1400万张图像和超过2万个不同的类别。其一个流行的任务是图像检测,即在图像检测和定位特定物体。 通常,ImageNet检测任务的结果以准确率为指标进行展示,即正确地检测到物体的比例。例如,常用的指标是平均精度(mean Average Precision,mAP),它考虑了检测结果的准确率和召回率(即检测到物体的比例)。 在展示检测效果时,可以使用可视化的方式,将检测结果在图像上标注出来。一些流行的图像检测模型包括Faster R-CNN、YOLO和SSD,它们可以在ImageNet数据集上进行训练和评估。这些模型的检测效果通常可以在相关论文或公开的竞赛找到,如PASCAL VOC和COCO竞赛。 ### 回答2: ImageNet数据集是一个大型的视觉识别数据集,包含超过1400万张标注图片,用于训练和测试图像分类和目标检测模型。通过在ImageNet数据集上进行检测任务的展示,可以评估模型的性能和准确度。 ImageNet数据集的检测任务使用的常见评估指标包括精确率(Precision)、召回率(Recall)和F1分数。精确率衡量了模型对正例的预测准确程度,召回率衡量了模型对正例的预测能力,而F1分数是精确率和召回率的调和平均值,综合评估了模型的表现。 在ImageNet数据集上展示检测效果时,常常使用一些流行的深度学习模型,如Faster R-CNN、YOLO和SSD等。这些模型通过在训练阶段学习到的特征来检测图像的目标,并生成边界框和类别标签。然后,可以计算模型的精确率、召回率和F1分数来评估检测效果。 通过展示ImageNet数据集上的检测效果,可以直观地看到模型对不同类别的目标的识别能力。例如,模型可以检测出车辆、动物、水果等常见物体,并标记出它们的位置和类别。这种展示有助于了解模型在处理各种不同场景和物体时的性能表现。 总之,通过在ImageNet数据集上进行检测任务的展示,可以有效评估模型的准确度和性能,并直观地展示模型对各种不同目标的识别效果。 ### 回答3: ImageNet数据集是一个常用的计算机视觉数据集,其包含超过1000个类别的1400万张图片,用于训练和评估图像分类、目标检测等任务。ImageNet数据集在深度学习研究和实践得到广泛应用。 ImageNet数据集的检测效果展示主要可以通过模型的精度和演示图片的视觉效果来评估。模型的精度可以通过计算预测结果与真实标签的匹配度来衡量。通常使用top-1和top-5准确率作为评价指标,前者指的是模型的预测结果和真实标签完全一致的比例,后者则指的是模型的预测结果包含真实标签的比例。 除了准确率,ImageNet数据集检测效果的展示还需要关注模型的泛化能力和鲁棒性。泛化能力指的是模型对未见过的数据的适应能力,鲁棒性则指的是模型对于扰动、遮挡等干扰的表现。模型在ImageNet数据集以外的图片上的表现也是评估其检测效果展示的重要指标。 此外,检测效果展示还可以通过展示一些具有代表性的目标检测结果图片来直观地评估。这些图片应该涵盖不同类别、不同场景和不同难度的目标,并展示模型的定位和识别能力。图片的视觉效果可以直观地反映出模型性能的好坏,如目标是否被准确框定、识别的置信度等。 综上所述,ImageNet数据集检测效果展示可以通过模型的准确率、泛化能力和鲁棒性的评估指标来衡量,同时展示一些具有代表性的目标检测结果图片来直观地展示模型的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值