sklearn之datasets模块常用功能详细介绍
Posted iostreamzl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sklearn之datasets模块常用功能详细介绍相关的知识,希望对你有一定的参考价值。
文章目录
序言
datasets模块对我们初入机器学习的小萌新来说,真的是帮助很大,但是去官网阅读又都是英文,阅读起来有点困难。基于这点,特意写了这篇文章来简单介绍datasets的2个主要模块。
每个模块会有一个简单的示例,告诉我们怎样获得数据,这篇文章主要将获得数据,所以不会关注模型的训练测试相关的知识,需要了解相关知识的看我的其他博文。
datasets简单概述
官方文档
sklearn.datasets包含三个主要的获得数据的模块
- loader模块:其中包含了一些很小的,很标准的,不需要进行数据处理的,可以直接使用模型训练的数据集,
比如波士顿房间数据集,这个模块中的数据集在安装sklearn时已经自动下载下来了。通用格式为load_*() - fetcher模块:这个模块用来下载在现实生活中的大型的数据集,通用格式为fetch_*()
- maker模块:这个模块用来自己生成数据,通用格式为maker_*()
三个模块返回的数据都是字典形式。一定有data,target这两个键
字典中data存储数据是,一个(n_samples*n_features)的numpy二维数组,
target存储数据的标签,feature_names存储特征的名字, targe存储标签的名字
需要注意的是,fetcher,maker产生的数据返回值中不一定有feature_names这个键
loader模块
数据集总览
数据集 | 获得方法 | 适用模型 |
---|---|---|
波士顿房价数据集 | load_boston() | 回归模型 |
鸢尾花数据集 | load_irir() | 分类模型 |
糖尿病数据集 | load_diabetes | 回归模型 |
手写数字识别数据集 | load_digits() | 分类模型 |
Linnerud数据集 | load_linnerud | 多输出回归模型 |
红酒数据集 | load_wine() | 分类模型 |
乳腺癌数据集 | load_breast_cancer() | 分类模型 |
示例(boston房价数据集)
# loader模块展示波士顿房价数据集
# boston房价数据集用于回归模型的学习
boston = datasets.load_boston()
X, y = boston['data'], boston['target']
print(X.shape, y.shape) # (506, 13) (506,)
# 将标签特征数据转化为datafram,更加直观的展现数据
pd.DataFrame(X).head()
maker模块
分类型数据的生成
make_blobs()
# n_samples为一个整数类型的话,所有的数据将按照中心的个数平均分配。centers默认为3
# n_features设置特征的数量,默认为2
X, y = datasets.make_blobs(n_samples=1000, n_features=2, centers=6, random_state=2)
plt.scatter(X[:, 0], X[:, 1], c=y)
# n_samples为列表类型时。每一个元素对应每一个分类中的样本数。
# 当n_samples为列表时,centers建议设置为None。
X, y = datasets.make_blobs(n_samples=[100, 200, 40, 70, 150, 200],
n_features=2, centers=None, random_state=2)
plt.scatter(X[:, 0], X[:, 1], c=y)
make_circles()
# n_samples 总的样本点数
# factor 小圆与大圆的比例
# noise 噪声率
X, y = datasets.make_circles(n_samples=300, random_state=0, factor=0.9, noise=0.04)
plt.scatter(X[:, 0], X[:, 1], c=y)
make_moons()
# n_samples 总的样本点数
# noise 噪声率
X, y = datasets.make_moons(n_samples=400, random_state=0, noise=0.05)
plt.scatter(X[:, 0], X[:, 1], c=y)
回归型数据的生成
make_regression()
X, y = datasets.make_regression(n_samples=300, n_features=2, noise=0.05, n_targets=1, random_state=9)
plt.scatter(X[:, 0], X[:, 1], c=y)
以上是关于sklearn之datasets模块常用功能详细介绍的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 sklearn.datasets.load_files 加载数据百分比