datasets 模块
用 dir() 函数查看 datasets 模块的所有属性和函数
import sklearn.datasets as datasets# 列出 sklearn.datasets 模块中的所有属性和函数
print(dir(datasets))
datasets 模块下的数据集有三种类型:
(1)load系列的经典数据集,均为小型数据集,安装sklearn库时自带
(2)fetch系列下载数据集,较大的数据集,需要额外下载
(3)make系列生成数据集,可以生成各种形态分布的随机数据集
load系列经典数据集
一共有9个数据集,用 load_xxx() 形式的函数加载。
from sklearn.datasets import load_xxx
data = load_xxx()
load_xxx() 返回的数据类型是<class 'sklearn.utils.Bunch'> ,这是scikit-learn 中的一种数据结构,称为 Bunch 对象。它类似于 Python 的字典,存储键值对,可以通过键来访问相应的值,例如:data['key'];还可以通过属性方式访问存储的数据,例如: data.key。
数据集名称 | 调用函数 | 适用算法 | 数据规模(行×列) |
波士顿房价数据集 | load_boston() | 回归 | 506×13 |
乳腺癌数据集 | load_breast_cancer() | 分类 | 569×30 |
糖尿病数据集 | load_diabetes() | 回归 | 442×10 |
手写数字数据集 | load_digits() | 分类 | 1797×64 |
鸢尾花数据集 | load_iris() | 分类 | 150×4 |
健身数据集 | load_linnerud() | 回归 | 20×3 (输入) + 20×3 (输出) |
示例图像数据集 | load_sample_image() | 图像处理 | 单个图像 |
示例图像集合数据集 | load_sample_images() | 图像处理 | 2个图像 |
红酒数据集 | load_wine() | 分类 | 178×13 |
fetch系列下载数据集
数据集名称 | 调用函数 | 适用算法 | 数据规模(行×列) | 说明 |
新闻分类数据集 | fetch_20newsgroups() | 分类 | 18,846×自由文本(训练:11,314,测试:7,532) | 文本分类任务,返回原始文本 |
新闻分类向量化数据集 | fetch_20newsgroups_vectorized() | 分类 | 同上,已向量化为稀疏矩阵 | 文本分类任务,返回已向量化的稀疏矩阵 |
加州房价数据集 | fetch_california_housing() | 回归 | 20,640×8 | 预测房价中位数 |
树木类型数据集 | fetch_covtype() | 分类 | 581,012×54 | 森林覆盖类型的分类 |
KDD Cup 99 数据集 | fetch_kddcup99() | 分类/异常检测 | 4,898,431×41(训练集) | 用于网络入侵检测和异常检测 |
LFW 人脸匹配数据集 | fetch_lfw_pairs() | 分类 | 2,200 对×自由文本(配对) | 人脸验证任务 |
LFW 人脸识别数据集 | fetch_lfw_people() | 分类 | 13,233×2919(图像大小:62×47 像素) | 人脸识别任务 |
Olivetti 面孔数据集 | fetch_olivetti_faces() | 分类/聚类 | 400×4096(图像大小:64×64 像素) | 聚类和面部识别 |
OpenML 数据集 | fetch_openml() | 多种算法 | 依赖于指定的数据集 | 从 OpenML 平台下载各种类型的数据集 |
RCV1 数据集 | fetch_rcv1() | 分类 | 804,414×47,236(稀疏矩阵) | 文本分类任务 |
物种分布数据集 | fetch_species_distributions() | 分类/回归 | 16,199×10 | 物种分布建模的回归或分类 |
make系列生成数据集
调用函数 | 生成数据形态 | 说明 |
make_biclusters() | 双聚类数据 | 生成带有重叠或不重叠块结构的矩阵数据 |
make_blobs() | 多簇数据 | 生成多个聚类的二维数据点 |
make_checkerboard() | 棋盘格数据 | 生成具有棋盘格结构的矩阵数据 |
make_circles() | 同心圆数据 | 生成二维同心圆形状的二元分类数据集 |
make_classification() | 分类数据 | 生成用于分类问题的随机数据集 |
make_friedman1() | 回归数据(非线性) | 生成非线性回归模型数据(Friedman #1) |
make_friedman2() | 回归数据(非线性) | 生成非线性回归模型数据(Friedman #2) |
make_friedman3() | 回归数据(非线性) | 生成非线性回归模型数据(Friedman #3) |
make_gaussian_quantiles() | 高斯分位数数据 | 生成服从高斯分布的分类数据 |
make_hastie_10_2() | 二分类数据 | 生成 Hastie 的二元分类数据集 |
make_low_rank_matrix() | 低秩矩阵数据 | 生成指定秩的低秩矩阵 |
make_moons() | 月亮形数据 | 生成二维的月亮形状二元分类数据集 |
make_multilabel_classification() | 多标签分类数据 | 生成随机多标签分类数据集 |
make_regression() | 回归数据 | 生成用于回归问题的随机数据集 |
make_s_curve() | S 曲线数据 | 生成 3D 的 S 形数据集 |
make_sparse_coded_signal() | 稀疏编码信号数据 | 生成用于稀疏表示的信号数据 |
make_sparse_spd_matrix() | 稀疏对称正定矩阵数据 | 生成稀疏对称正定矩阵 |
make_sparse_uncorrelated() | 稀疏无关数据 | 生成稀疏的无相关特征数据集 |
make_spd_matrix() | 对称正定矩阵数据 | 生成对称正定矩阵 |
make_swiss_roll() | 瑞士卷数据 | 生成 3D 的瑞士卷形状数据集 |
经典数据集
鸢尾花数据集(三分类)
1、数据集内容
load_iris() 返回的是一个字典,字典中元素介绍如下:
键值 | 含义 | 数据类型 | 数据大小 | 元素类型 | 说明示例 |
data | 特征数据 | array | 4 * 150 | float | [4.9, 3. , 1.4, 0.2] |
target | 类别 | array | 1 * 150 | int | 0, 1, 2 |
feature_names | 特征名称 | list | 4 | str | 'sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)' 萼片长度、萼片宽度、花瓣长度、花瓣宽度 |
target_names | 类别标签 | array | 3 | str | 'setosa', 'versicolor', 'virginica' 鸢尾花的三个类别 |
frame | None | ||||
filename | 文件名 | str | iris.csv | ||
data_module | str | sklearn.datasets.data | |||
DESCR | 描述 | str | 对数据的描述 |
2、特征说明
特征 | 含义 |
sepal length (cm) | 萼片长度(厘米) |
sepal width (cm) | 萼片宽度(厘米) |
petal length (cm) | 花瓣长度(厘米) |
petal width (cm) | 花瓣宽度(厘米) |
3、读取鸢尾花数据的完整代码
# 导入鸢尾花数据集
from sklearn.datasets import load_iris# 读取鸢尾花数据集
data = load_iris()
# 原始数据集是一个字典
# print(data)# for i in data.keys():
# print(i)# 读取特征数据 4*150
feature_data = data['data']
# print(feature_data)
# 读取鸢尾花分类数据 1*150
target_data = data['target']
# print(target_data)
# 读取特征名称,4个特征
feature_name = data['feature_names']
# print(feature_name)
# 读取类别标签,3种类型
target_label = data['target_names']
# print(target_label)
波士顿房价数据集(回归)
1、数据集内容
load_boston() 返回的是一个字典,字典中的元素:
键值 | 含义 | 数据类型 | 数据大小 | 元素类型 | 说明示例 |
data | 特征数据 | array | 13 * 506 | float | [4.7410e-02, 0.0000e+00, 1.1930e+01, ..., 2.1000e+01, 3.9690e+02, 7.8800e+00] |
target | 房价 | array | 1 * 506 | float | 21.6, 34.7 |
feature_names | 特征名称 | array | 13 | str | ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT'] |
filename | 文件名 | str | boston_house_prices.csv | ||
data_module | str | sklearn.datasets.data | |||
DESCR | 描述 | str | 对数据的描述 |
2、特征说明
自变量
特征 | 英文释义 | 含义 |
CRIM | per capita crime rate by town | 城镇人均犯罪率 |
ZN | proportion of residential land zoned for lots over 25,000 sq.ft. | 占地面积超过 25,000 平方英尺的住宅用地比例 |
INDUS | proportion of non-retail business acres per town | 每个城镇非零售商业用地比例 |
CHAS | Charles River dummy variable (= 1 if tract bounds river; 0 otherwise) | 查尔斯河虚拟变量(1 = 区域靠近河流,0 = 其他) |
NOX | nitric oxides concentration (parts per 10 million) | 一氧化氮浓度(每千万份之一) |
RM | average number of rooms per dwelling | 每户平均房间数 |
AGE | proportion of owner-occupied units built prior to 1940 | 1940 年前建成的自住房比例 |
DIS | weighted distances to five Boston employment centres | 到五个波士顿就业中心的加权距离 |
RAD | index of accessibility to radial highways | 高速公路可达性指数 |
TAX | full-value property-tax rate per $10,000 | 每 $10,000 的全额财产税率 |
PTRATIO | pupil-teacher ratio by town | 城市的学生与教师比例 |
B | 1000(Bk - 0.63)^2 where Bk is the proportion of black people by town | 城市中黑人比例 |
LSTAT | % lower status of the population | 较低社会地位人口的百分比 |
因变量
因变量 | 英文释义 | 含义 |
MEDV | Median value of owner-occupied homes in $1000's | 自住房屋的中位数价格(以 $1000 为单位) |
3、读取波士顿数据的完整代码
# 导入波士顿数据集
from sklearn.datasets import load_boston# 读取波士顿数据集
data = load_boston()
# 原始数据集是一个字典
# print(data)# for i in data.keys():
# print(i)# 读取特征数据 13*506
feature_data = data['data']
# print(feature_data)
# print(feature_data.shape)
# 读取房价 1*506
target_data = data['target']
# print(target_data)
# 读取特征名称,13个特征
feature_name = data['feature_names']
# print(feature_name)
糖尿病数据集(回归)
1、数据集内容
load_diabetes() 返回的是一个字典,字典中的元素:
键值 | 含义 | 数据类型 | 数据大小 | 元素类型 | 说明示例 |
data | 特征数据 | array | 10 * 442 | float | [-0.04547248, -0.04464164, -0.0730303 , ..., -0.03949338, -0.00421986, 0.00306441] |
target | 房价 | array | 1 * 442 | float | 179., 185., 118., |
feature_names | 特征名称 | list | 10 | str | ['age', 'sex', 'bmi', 'bp', 's1', 's2', 's3', 's4', 's5', 's6'] |
data_filename | 特征数据文件名 | str | diabetes_data.csv.gz | ||
target_filename | 因变量数据文件名 | str | diabetes_target.csv.gz | ||
frame | None | ||||
data_module | str | sklearn.datasets.data | |||
DESCR | 描述 | str | 对数据的描述 |
2、特征说明
自变量
特征 | 英文释义 | 含义 |
age | age in years | 年龄(以年为单位) |
sex | sex | 性别 |
bmi | body mass index | 身体质量指数 |
bp | average blood pressure | 平均血压 |
s1 | tc, total serum cholesterol | 总血清胆固醇 |
s2 | ldl, low-density lipoproteins | 低密度脂蛋白 |
s3 | hdl, high-density lipoproteins | 高密度脂蛋白 |
s4 | tch, total cholesterol / HDL | 总胆固醇与 HDL 的比值 |
s5 | ltg, possibly log of serum triglycerides level | 血清甘油三酯水平的对数 |
s6 | glu, blood sugar level | 血糖水平 |
因变量
英文释义 | 含义 |
a quantitative measure of disease progression one year after baseline | 一年后的疾病进展的定量衡量 |
3、读取糖尿病数据的完整代码
# 导入糖尿病数据集
from sklearn.datasets import load_diabetes# 读取糖尿病数据集
data = load_diabetes()
# 原始数据集是一个字典
# print(data)for i in data.keys():print(i)# 读取特征数据 10*442
feature_data = data['data']
# print(feature_data)
# print(feature_data.shape)
# 读取因变量 1*442
target_data = data['target']
# print(target_data)
# 读取特征名称,10个特征
feature_name = data['feature_names']
# print(feature_name)
乳腺癌数据集(二分类)
1、数据集内容
load_breast_cancer()返回的是一个字典,字典中的元素:
键值 | 含义 | 数据类型 | 数据大小 | 元素类型 | 说明示例 |
data | 特征数据 | array | 30 * 569 | float | [1.969e+01, 2.125e+01, 1.300e+02, ..., 2.430e-01, 3.613e-01, 8.758e-02] |
target | 类别 | array | 1 * 150 | int | 0, 1 |
feature_names | 特征名称 | array | 30 | str | ['mean radius', 'mean texture', 'mean perimeter', 'mean area', 'mean smoothness', 'mean compactness', 'mean concavity', 'mean concave points', 'mean symmetry', 'mean fractal dimension', 'radius error', 'texture error', 'perimeter error', 'area error', 'smoothness error', 'compactness error', 'concavity error', 'concave points error', 'symmetry error', 'fractal dimension error', 'worst radius', 'worst texture', 'worst perimeter', 'worst area', 'worst smoothness', 'worst compactness', 'worst concavity', 'worst concave points', 'worst symmetry', 'worst fractal dimension'] |
target_names | 类别标签 | array | 2 | str | ['malignant', 'benign'] |
frame | None | ||||
filename | 文件名 | str | breast_cancer.csv | ||
data_module | str | sklearn.datasets.data | |||
DESCR | 描述 | str | 对数据的描述 |
2、特征说明
以下原始特征的均值(mean)、标准误差(standard error)、以及“最差”或最大值(三个最差/最大值的均值)被计算为新的特征,最终得出 30 个特征。
原始特征 | 英文释义 | 含义 |
radius | mean of distances from center to points on the perimeter | 半径(从中心到周长上的点的平均距离) |
texture | standard deviation of gray-scale values | 纹理(灰度值的标准差) |
perimeter | perimeter | 周长 |
area | area | 面积 |
smoothness | local variation in radius lengths | 平滑度(半径长度的局部变化) |
compactness | perimeter^2 / area - 1.0 | 紧致度(周长的平方除以面积减去1) |
concavity | severity of concave portions of the contour | 凹陷度(轮廓凹陷部分的严重程度) |
concave points | number of concave portions of the contour | 凹陷点数(轮廓凹陷部分的数量) |
symmetry | symmetry | 对称性 |
fractal dimension | "coastline approximation" - 1 | 分形维度(“海岸线逼近”)- 1 |
3、读取乳腺癌数据的完整代码
# 导入乳腺癌数据集
from sklearn.datasets import load_breast_cancer# 读取乳腺癌数据集
data = load_breast_cancer()
# 原始数据集是一个字典
# print(data)# for i in data.keys():
# print(i)# 读取特征数据 30*569
feature_data = data['data']
# print(feature_data)
# 读取乳腺癌分类数据 1*569
target_data = data['target']
# print(target_data)
# 读取特征名称,30个特征
feature_name = data['feature_names']
# print(feature_name)
# 读取类别标签,2种类型
target_label = data['target_names']
# print(target_label)
红酒数据集(三分类)
1、数据集内容
load_wine()返回的是一个字典,字典中的元素:
键值 | 含义 | 数据类型 | 数据大小 | 元素类型 | 说明示例 |
data | 特征数据 | array | 13 * 178 | float | [1.316e+01, 2.360e+00, 2.670e+00, ..., 1.030e+00, 3.170e+00, 1.185e+03] |
target | 类别 | array | 1 * 178 | int | 0, 1, 2 |
feature_names | 特征名称 | list | 13 | str | ['alcohol', 'malic_acid', 'ash', 'alcalinity_of_ash', 'magnesium', 'total_phenols', 'flavanoids', 'nonflavanoid_phenols', 'proanthocyanins', 'color_intensity', 'hue', 'od280/od315_of_diluted_wines', 'proline'] |
target_names | 类别标签 | array | 3 | str | ['class_0', 'class_1', 'class_2'] |
frame | None | ||||
DESCR | 描述 | str | 对数据的描述 |
2、特征说明
特征 | 含义 |
Alcohol | 酒精含量 |
Malic acid | 苹果酸含量 |
Ash | 灰分 |
Alcalinity of ash | 灰分的碱度 |
Magnesium | 镁含量 |
Total phenols | 总酚含量 |
Flavanoids | 黄酮类化合物含量 |
Nonflavanoid phenols | 非黄酮类酚含量 |
Proanthocyanins | 原花青素含量 |
Color intensity | 颜色强度 |
Hue | 色调 |
OD280/OD315 of diluted wines | 稀释葡萄酒在280nm和315nm处的吸光度比值 |
Proline | 脯氨酸含量 |
3、读取红酒数据的完整代码
# 导入红酒数据集
from sklearn.datasets import load_wine# 读取红酒数据集
data = load_wine()
# 原始数据集是一个字典
# print(data)# for i in data.keys():
# print(i)# 读取特征数据 13*178
feature_data = data['data']
# print(feature_data)
# 读取红酒分类数据 1*178
target_data = data['target']
# print(target_data)
# 读取特征名称,13个特征
feature_name = data['feature_names']
# print(feature_name)
# 读取类别标签,3种类型
target_label = data['target_names']
# print(target_label)
健身数据集
1、数据集内容
load_linnerud()返回的是一个字典,字典中的元素:
键值 | 含义 | 数据类型 | 数据大小 | 元素类型 | 说明示例 |
data | 特征数据 | array | 3 * 20 | float | [ 17., 251., 250.] |
target | target数据 | array | 3 * 20 | float | [189., 37., 52.] |
feature_names | 特征名称 | list | 3 | str | ['Chins', 'Situps', 'Jumps'] |
target_names | target名称 | list | 3 | str | ['Weight', 'Waist', 'Pulse'] |
frame | None | ||||
data_filename | 自变量数据文件名 | str | linnerud_exercise.csv | ||
target_filename | 因变量数据文件名 | linnerud_physiological.csv | |||
data_module | str | sklearn.datasets.data | |||
DESCR | 描述 | str | 对数据的描述 |
2、特征说明
特征 | 含义 |
Chins | 引体向上次数 |
Situps | 仰卧起坐次数 |
Jumps | 跳跃次数 |
Weight | 体重 |
Waist | 腰围 |
Pulse | 脉搏率(心率) |