编者语:我们在用python进行数据分析,尤其是进行机器学习的学习时,会经常性的加载很多数据集,一般我们加载某些数据集,都是先从UCI数据集上找到某个数据集,然后下载,下载完成之后再用python加载。在我进行机器学习的初期,我用过这种方法几次,但这种方法真的是很麻烦,会浪费我们大量的时间。后来我发现,python有一些简单的库(或者称之为包)的东西,使之我们加载一些机器学习的数据集的时候方便、快捷(简单、粗暴)。好了,其他废话我就不在此赘余了,下面进入正题!

一、上面所说的加载数据集的方式也就是使用python的sklearn库,而且sklearn库的数据集也包含好多种:
              ·自带的小数据集:sklearn.datasets.load_<name>

              ·可在线下载的数据集:sklearn.datasets.fetch_<name>

              ·计算机生成的数据集:sklearn.datasets.make_<name>

              ·svmlight/libsvm格式的数据集:sklearn.datasets.load_svmlight_file(...)

              ·从data.org在线下载获取的数据集:sklearn.datastes.fetch_mldata(...)

二、除了sklearn导入之外,还可以找到所需数据集的网址,直接用python调用网址进行加载数据集,省去你中间下载数据集的繁琐操作

关于sklearn库导入相关数据集,我只讲解:自带小数据集

1、自带的小数据集:sklearn.datsets.load_<name>

鸢尾花数据集

load_iris()

乳腺癌数据集

load_breast_cancer()

手写数字数据集

load_digits()

糖尿病数据集

load_disbetes()

波士顿房价数据集

load_boston()

体能训练数据集

load_linnerud()

#导入sklearn的库
from sklearn.datasets import load_iris

#加载鸢尾花数据集
iris =load_iris()

#输出数据集相关的操作属性,也就是“<数据集>.<操作属性>”
print(iris.keys())

#数据集类别的名称
print('target_names',iris.target_names)

#数据属性的名称
print('feature_names',iris.feature_names)

#数据集的描述,包括这个数据集所有的相关信息
print('DESCR',iris.DESCR)

实例1上手:

#导入sklearn的库
from sklearn.datasets import load_iris

#加载鸢尾花数据集
iris =load_iris()

#将数据转为矩阵类型,也就是DataFrame
import panda as pd

#更改数据的列名
df = pd.DataFrame(iris,columns=['属性1','属性2','属性3','类别'])

#数据的条数和维数
n_samples,n_features=iris.data.shape
print("Number of sample:",n_samples)  
print("Number of feature",n_features) 

#x为数据集的属性集
x = iris.data

#y为数据集的类别集(标签)
y = iris.target

2、通过目标数据集网址加载数据集

首先我们找到所需数据集的网址,我们以加载hayes-Roth数据集为例(关于如何从UCI数据集上找到目标数据集的网址我就不多说了,你需要UCI上的啥数据,你找到它复制下来就好了):

hayes-Roth数据集的网址:https://archive.ics.uci.edu/ml/machine-learning-databases/hayes-roth/hayes-roth.data

#此程序必须得在联网环境下运行
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

#导入hayes-roth数据集的网址
dataset_url = "https://archive.ics.uci.edu/ml/machine-learning-databases/hayes-roth/hayes-roth.data"

#设置数据集的列名称,也可以不进行设置
names = ['hobby', 'age', 'educational level', 'marital status', 'class']

#加载目标数据集
dataset = pd.read_csv(dataset_url, names=names)

#输出数据集的前20行
print(dataset.head(20))

#拆分原始数据集
array = dataset.values

#使x为数据集的前4列数据
x = array[:,0:4]

#使y为数据集的第5列数据
y = array[:,4]
#print(x)
#print(y)

#查看一共有几种类别以及每一种类的数量,以柱状图的形式展现出来
sns.countplot(array[:,4])

编者结束语:由于小编还在校学习,基本上上述两种方法就可以满足我几乎所有的日常需求,因此在这里我只详细解说的这两种方法。若以后接触到上述没有详细讲解的部分或其他方法,我会再进行补充,以供大家使用。