一、UCI 数据集介绍

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

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

python从uci读取数据集 python处理uci数据集_深度学习

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

python从uci读取数据集 python处理uci数据集_深度学习_02

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

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

python从uci读取数据集 python处理uci数据集_深度学习_03

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

二、使用 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)

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

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

from sklearn import datasets

Data = datasets.load_wine()

python从uci读取数据集 python处理uci数据集_深度学习_04

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


四、知识点

1. Bunch 模式

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

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