sklearn包中有哪些数据集你都知道吗?
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }
span.s1 { font: 12.0px "Helvetica Neue" }
span.s2 { font: 12.0px ".PingFang SC" }
注册了博客园一晃有3个月了,同时接触机器学习也断断续续的算是有1个月了。今天就用机器学习神器sklearn包的相关内容作为我的开篇文章吧。
本文将对sklearn包中的数据集做一个系统介绍,并简单说一下它们的使用。
道行尚浅,如正文描述有误还望小伙伴不吝赐教,不胜感激,即刻进入正文。
首先,一般机器学习的建模步骤是:数据收集 -> 特征工程 -> 模型选择 -> 模型训练 -> 模型评估 -> 超参数调整 -> 模型预测 -> 模型保存
由此可见,拥有大量优质的数据是建模的必要条件。
在此默认你已经下载并安装了sklearn,并对其有了简单的了解。接下来就说一说sklearn中的数据集。
sklearn.datasets模块中包含了大量优质数据集,官网地址:http://scikit-learn.org/stable/modules/classes.html#module-sklearn.datasets
该模块主要提供了直接导入、在线下载及本地计算机生成数据集的方法,可以通过dir(datasets)或help(datasets)命令查看该模块的详细信息。
不难发现,datasets主要为我们提供了三种方法来使用数据集:load_<dataset_name>、fetch_<dataset_name>及make_<dataset_name>
-
load系列,datasets.load_<dataset_name>:sklearn自带的可直接使用的小数据集(packaged dataset)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px “Helvetica Neue”; color: #454545 }
span.s1 { font: 12.0px “.PingFang SC” }
‘load_boston’, # 波士顿房价数据集,用于回归任务的数据集
‘load_breast_cancer’, # 乳腺癌数据集,用于二分类任务的数据集
‘load_diabetes’, # 糖尿病数据集,用于回归任务的数据集
‘load_digits’, # 手写数字数据集,用于多分类任务的数据集
‘load_files’, # 加载自己的原始数据
‘load_iris’, # 鸢尾花数据集,用于多分类任务的数据集
‘load_lfw_pairs’, # 人脸核实数据集(给定两张照片,用来预测这两幅图是否来自同一个人)
‘load_lfw_people’, # 人脸鉴定数据集(给定一张照片,用来找到一个给定的训练集的人的名字)
‘load_linnerud’, # 体能训练数据集,用于多变量回归任务的数据集,其中有两个小数据集:Excise是对3个训练变量的20次观测(体重,腰围,脉搏),physiological是对3个生理学变量的20次观测(引体向上,仰卧起坐,立定跳远)
‘load_mlcomp’, # 从http://mlcomp.org下载的数据集
‘load_sample_image’, # 一张图像(numpy数组格式)
‘load_sample_images’, # 图像集,用于图像处理
‘load_svmlight_file’,
‘load_svmlight_files’,
-
fetch系列,datasets.fetch_<dataset_name>:支持在线下载的较大的数据集(Downloaded Dataset)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px “Helvetica Neue”; color: #454545 }
span.s1 { font: 12.0px “.PingFang SC” }
‘fetch_20newsgroups’, # 20个新闻组数据集,用于文本分类的数据集
‘fetch_20newsgroups_vectorized’, # 新闻分类数据集,其中包含train和test
‘fetch_california_housing’,
‘fetch_covtype’,
‘fetch_kddcup99’,
‘fetch_lfw_pairs’,
‘fetch_lfw_people’,
‘fetch_mldata’,
‘fetch_olivetti_faces’,
‘fetch_rcv1’,
‘fetch_species_distributions’,
-
make系列,datasets.make_<dataset_name>:计算机生成的数据集(Generated Dataset)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px “Helvetica Neue”; color: #454545 }
span.s1 { font: 12.0px “.PingFang SC” }
‘make_biclusters’,
‘make_blobs’,
‘make_checkerboard’,
‘make_circles’,
‘make_classification’,
‘make_friedman1’,
‘make_friedman2’,
‘make_friedman3’,
‘make_gaussian_quantiles’,
‘make_hastie_10_2’,
‘make_low_rank_matrix’,
‘make_moons’,
‘make_multilabel_classification’,
‘make_regression’,
‘make_s_curve’,
‘make_sparse_coded_signal’,
‘make_sparse_spd_matrix’,
‘make_sparse_uncorrelated’,
‘make_spd_matrix’,
‘make_swiss_roll’
现在我们已经大致了解了这些数据集,如果想要使用它们,只需要三个小步骤(此处以小数据集iris为例):
-
引入sklearn.datasets模块
from sklearn import datasets
-
导入数据集并实例化一个对象iris
iris = datasets.load_iris()
-
使用shape方法查看数据集
n_samples, n_features = iris.data.shape print("Number of sample:", n_samples) print("Number of feature:", n_features)
-
运行结果如下,数据集的标准形状(shape)为二维数组(samples, features),其中n_samples表示数据集大小,n_features表示其中特征向量的维数
这个结果表示iris数据集含有150个数据样本,每个数据样本是一个4维的特征向量。
接下来我们就可以使用这个数据集了,一般情况下,将iris.data作为样本特征向量,将iris.target作为样本label