鸢尾花Iris训练数据和测试数据的分割和训练数据的散点图矩阵绘制

鸢尾花Iris训练数据和测试数据的分割和训练数据的散点图矩阵绘制

鸢尾花Iris训练数据和测试数据的分割和训练数据的散点图矩阵绘制

一、训练数据和测试数据

1.1 训练数据(training data)

用于构建机器学习模型的数据,叫作训练数据(training data)或训练集(training set)。

1.2 测试数据(test data)

用于评估模型性能的数据,称作测试数据(test data)或测试集(test set)或留出集(hold-out set)。

1.3 泛化能力 (Generalization ability)

泛化能力 (Generalization ability) 指的是一个模型在未见过的数据上的表现能力。 它衡量一个模型学习到的知识是否能够推广到新的、不同的数据,而不是仅仅在训练数据上表现良好。 一个具有良好泛化能力的模型,即使面对训练数据中未出现的情况,也能做出准确的预测或决策。

二、训练数据和测试数据分割

2.1 训练数据和测试数据的比例

训练数据与测试数据的分配比例可以是随意的,但是以25%的数据作为测试数据是一种好的经验法则。

训练集和测试集: 评估泛化能力的关键在于将数据集分成训练集和测试集。模型在训练集上进行学习,然后在从未见过数据的测试集上进行评估。测试集上的表现才是对泛化能力的真正检验。

2.2 Python中scikit-learn中训练数据和测试数据分割方法

在scikit-learn中,可以使用train_test_split函数进行数据集的分割。

例如,以鸢尾花数据集分割程序为例子:

python 复制代码
## 1. 从sklearn中加载数据集datasets
from sklearn import datasets
## 2.取出datasets数据集中的鸢尾花数据赋值给iris
iris = datasets.load_iris()    #iris为字典类型数据

## 3. 数据集分割为训练集和测试集
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(iris['data'],iris['target'],random_state=0)

## 4.对训练集结构进行查看
print('X_train shape:{}'.format(X_train.shape))
print('y_train shape:{}'.format(y_train.shape))

## 5.对测试集结构进行查看
print('X_test shape:{}'.format(X_test.shape))
print('y_test shape:{}'.format(y_test.shape))

运行结果:

图1 运行结果

三、基于散点图矩阵的数据观察

3.1 安装pandas工具包

在电脑cmd指令窗,输入如下代码

python 复制代码
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成如图2所示。

图2 pandas工具包安装过程

3.2 安装mglearn工具包

在电脑cmd指令窗,输入如下代码

python 复制代码
pip install mglearn -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成如图3所示。

图3 mglearn工具包安装过程

3.3 绘制散点图矩阵

在绘制散点图矩阵前,除了安装pandas工具包、mglearn工具包外,还需要安装了sklearn工具包,matplotlib工具包等。

绘制散点图矩阵代码如下:

python 复制代码
## 1. 从sklearn中加载数据集datasets
from sklearn import datasets
## 2.取出datasets数据集中的鸢尾花数据赋值给iris
iris = datasets.load_iris()    #iris为字典类型数据

## 3. 数据集分割为训练集和测试集
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(iris['data'],iris['target'],random_state=0)

## 4.对训练集结构进行查看
print('X_train shape:{}'.format(X_train.shape))
print('y_train shape:{}'.format(y_train.shape))

## 5.对测试集结构进行查看
print('X_test shape:{}'.format(X_test.shape))
print('y_test shape:{}'.format(y_test.shape))


## 6.散点图矩阵绘制
import matplotlib.pyplot as plt     #使用缩减的plt代替matplotlib
import pandas as pd
import mglearn
from pandas.plotting import scatter_matrix
iris_dataframe=pd.DataFrame(X_train,columns=iris.feature_names)
grr=scatter_matrix(iris_dataframe,c=y_train,figsize=(16,16),marker='o',hist_kwds={'bins':20},s=60,alpha=.8,cmap=mglearn.cm3)
plt.show()   #图显示

运行结果如图4所示:

图4 Iris数据集的散点图矩阵,按类别标签着色

四、总结

本文以鸢尾花数据iris数据为例,首先介绍了鸢尾花Iris数据分割为训练数据和测试数据并对train_test_split函数进行使用分割,最后对训练数据的散点图矩阵绘制进行了代码介绍并绘图。

相关推荐
Ulyanov5 小时前
高保真单脉冲雷达导引头回波生成:Python建模与实践
开发语言·python·仿真·系统设计·单脉冲雷达
Li emily5 小时前
成功接入A股实时行情API获取实时市场数据
人工智能·python·金融·fastapi
shehuiyuelaiyuehao6 小时前
22Java对象的比较
java·python·算法
张小凡vip6 小时前
Python异步编程实战:基于async/await的高并发实现
开发语言·python
大模型最新论文速读7 小时前
NAtS-L: 自适应融合多种注意力架构,推理能力提高 36%
人工智能·深度学习·机器学习·语言模型·自然语言处理
zcbk01687 小时前
不踩坑!手把手教你在 Mac 上安装 Windows(含分区/虚拟机/驱动解决方案)
python
Dev7z7 小时前
滚压表面强化过程中变形诱导位错演化与梯度晶粒细化机理的数值模拟研究
人工智能·python·算法
吴秋霖7 小时前
apple游客下单逆向分析
python·算法·逆向分析
feasibility.8 小时前
yolo11-seg在ISIC2016医疗数据集训练预测流程(含AOP调loss函数方法)
人工智能·python·yolo·计算机视觉·健康医疗·实例分割·isic2016
YunchengLi9 小时前
【计算机图形学中的四元数】2/2 Quaternions for Computer Graphics
人工智能·算法·机器学习