sklearn数据集
scikit-learn 数据集 API 介绍
- sklearn.datasets
- 加载获取流行数据集
datasets.load_*()
- 获取小规模数据集,数据包含在
datasets
里
- 获取小规模数据集,数据包含在
datasets.fetch_*(data_home=None)
- 获取大规模数据集,需要从网络上下载,函数的第一个参数是
data_home
, 表示数据集下载的目录,默认是~/scikit_learn_data/
- 获取大规模数据集,需要从网络上下载,函数的第一个参数是
sklearn 小数据集
【例如】
sklearn.datasets.load_iris()
加载并返回鸢尾花数据集
名称 | 数量 |
---|---|
类别 | 3 |
样本数量 | 150 |
特征 | 4 |
每个类别数量 | 50 |
sklearn.datasets.load_iris()
加载并返回波士顿房价数据集
名称 | 数量 |
---|---|
目标类别 | 5-50 |
样本数量 | 506 |
特征 | 13 |
sklearn
大数据集
sklearn.datasets.fetch_20newsgroups(data_home=None, subset='train')
subset
:'train'
或者'test'
,'all'
,可选,选择要加载的数据集- 训练集的 ”训练“ ,测试集的 ”测试“ , 两者的 ”全部“
sklearn
数据集的使用
以鸢尾花数据集为例:
sklearn
数据集返回值介绍
load
和fetch
返回的数据类型datasets.base.Bunch
(字典格式)data
:特征数据数组,是[n_samples * n_features]
的二维numpy.ndarray
数组target
:标签数组,是n_samples
的一维numpy.ndarray
数组。DESCR
:数据描述feature_names
:特征名,新闻数据,手写数字、回归数据集没有target_names
:标签名
from sklearn.datasets import load_iris
if __name__ == '__main__':
# 获取鸢尾花数据集
iris = load_iris()
# print('鸢尾花数据集的返回值为:',iris)
# 返回值是一个继承自字典的 Bench
print('鸢尾花的特征值为:', iris['data'])
print('鸢尾花的特征值的形状为:', iris['data'].shape)
print('鸢尾花的目标值为:', iris['target'])
print('鸢尾花特征的名字:', iris['feature_names'])
print('鸢尾花目标值的名字:', iris['target_names'])
print('鸢尾花的描述:', iris['DESCR'])
拿到的数据是否全部都用来训练一个模型?
数据集的划分2.1.3
机器学习一般的数据集会划分为两个部分:
- 训练数据:用于训练,构建模型
- 测试数据:在模型检验时使用,用于评估模型是否有效
划分比例:
- 训练集:70% 80% 75%
- 测试集:30% 20% 30%
数据集划分api
sklearn.model_selection.train_dest_split(arrays, *options)
x
数据集的特征值y
数据集的标签值test_size
测试集的大小,一般为float
random_state
随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同。return
训练集特征值,测试集特征值,训练集目标值,测试集目标值
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
if __name__ == '__main__':
# 获取鸢尾花数据集
iris = load_iris()
# print('鸢尾花数据集的返回值为:',iris)
# 返回值是一个继承自字典的 Bench
print('鸢尾花的特征值为:', iris['data'])
print('鸢尾花的特征值的形状为:', iris['data'].shape)
print('鸢尾花的目标值为:', iris['target'])
print('鸢尾花特征的名字:', iris['feature_names'])
print('鸢尾花目标值的名字:', iris['target_names'])
print('鸢尾花的描述:', iris['DESCR'])
# 数据集划分
# test_size 的默认值为 0.25
x_train, x_test, y_train, y_test = train_test_split(iris['data'], iris['target'], test_size=0.2, random_state=22)
print('训练集的特征值:', x_train, x_train.shape)