一、UCI 数据集介绍

        进行机器学习学习过程中,会使用到 UCI 公开数据集,UCI 数据集网址:UCI Machine Learning Repository

        点击进入之后,页面显示如下:

        以 iris 数据集为例,点击进入:

        该页面展示了该数据集的相关信息,包括:数据及相关介绍、相关任务、样本个数、特征个数、是否有缺失值等。

        常见数据集及其样本个数、特征个数总结:

        更为详细的数据集介绍和使用方法见下面参考链接,因为本文是利用 Python 读取数据集,所以就不在此赘述了~ 

        (参考:UCI数据集整理(附论文常用数据集)

        (参考:UCI数据集详解及其数据处理(附148个数据集及处理代码)

二、使用 Python 读取 UCI 数据集,并保存成 .mat 数据

        在 UCI 网站下载数据集固然可行,但突然想到 Python 中的 sklearn.datasets 可以直接 load 数据集,所以直接借用 Python 了。

        代码如下: 

import numpy as np
from sklearn import datasets  # UCI 数据集在sklearn.datasets中有
from scipy import io as scio  # 用来save .mat数据

# 载入wine数据集
Data = datasets.load_wine()

feaName = Data.feature_names  # 数据集特征名称
tarName = Data.target_names  # 数据集标签名称

myData = np.array(Data.data)  # 数据集数据
labels = np.array(Data.target)  # 数据集标签

DataSet = {}
DataSet['feature_names'] = feaName
DataSet['class_names'] = tarName
DataSet['data'] = myData
DataSet['label'] = labels


# 保存数据到 .mat 文件中
scio.savemat('DataSet_UCIwine.mat', DataSet)

        (参考:python读取文件——python读取和保存mat文件 ) 

三、sklearn.datasets.load_wine() 使用方法 

        本节详细介绍 sklearn.datasets.load_wine() 的返回值,即 Data 是什么?

from sklearn import datasets

Data = datasets.load_wine()

         可以看出,Data 是一个 Bunch 模式的数据,其中包含 data(数据集数据)、feature_names(特征名字)、target(数据集标签)、target_names(分类后的类别名字)等信息,所以可以通过 Data.data, Data.target 等的方法获取数据和相应标签等。

        (参考:【20210924】【机器/深度学习】以鸢尾花卉数据集为例,使用K折交叉验证选取KNN算法最优的模型参数实例

四、知识点

1. Bunch 模式

        Bunch 模式继承自 Dict 类,所以它具有 Dict 类的所有属性。

        Bunch 模式非常灵活,其属性可以动态设置,可以使用它实现多种类型,尤其适用于建立树形结构。

        (参考:Python中的Bunch模式

        (参考:python函数——Bunch配置加载

        (参考:Python中的Bunch模式

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐