一、自带的小数据集(packageddataset):sklearn.datasets.load_
推荐读者阅读网站:
- (w3cschool) https://www.w3cschool.cn/doc_scikit_learn/scikit_learn-modules-generated-sklearn-datasets-load_digits.html
- (scikit-learn (sklearn) 官方文档中文版)https://sklearn.apachecn.org/docs/0.21.3/47.html
- Scikit-learn英文官网https://scikit-learn.org/stable/
1)鸢尾花数据集:load_iris():用于分类任务的数据集
- 数据介绍:
- 一般用于做分类测试
- 有150个数据集,共分为3类,每类50个样本。每个样本有4个特征。
- 每条记录都有 4 项特征:包含4个特征(Sepal.Length(花萼长度)、Sepal.Width(花萼宽度)、Petal.Length(花瓣长度)、Petal.Width(花瓣宽度)),特征值都为正浮点数,单位为厘米。
- 可以通过这4个特征预测鸢尾花卉属于(iris-setosa(山鸢尾), iris-versicolour(杂色鸢尾), iris-virginica(维吉尼亚鸢尾))中的哪一品种。
- 属性介绍:
见代码注释 - 代码示例:
# 鸢尾花数据集:
from sklearn import datasets
# iris:鸢尾花数据集:--> 用于分类
# 有150个数据集,共分为3类,每类50个样本。每个样本有4个特征。
# 加载数据集
iris = datasets.load_iris() # 加载iris数据集
# 打印数据集的相关信息
n_samples,n_features=iris.data.shape
print("共有", n_samples, "个样本, 每个样本有", n_features, "个特征") #输出:共有 150 个样本, 每个样本有 4 个特征
print("iris.data.shape --> ",iris.data.shape) # 样本, 输出:iris.data.shape --> (150, 4)
print("iris.target.shape --> ",iris.target.shape) # 标签, 输出:iris.target.shape --> (150,)
# print("这是四个特征值:\n",iris.feature_names) # 样本对应的每个特征的意义
# print("iris.target_names --> ",iris.target_names) # 三种鸢尾花数据的具体名字
# print("iris data :\n ",iris.data) # 样本数据(150,4)
# print("iris traget :\n ",iris.target) # 每隔样本对应的标签(150,1)
# print("dict_keys:\n",iris.keys()) #dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename'])
# print("查看数据集描述:\n",iris["DESCR"])
# print("鸢尾花数据集:\n",iris)
# 给数据集划分训练集和测试集:
# 当我们得到所有的数据集,不能全部用来进行训练,要给他划分为训练集和测试集
# train_test_split(数据集的特征值,数据集的标签值,测试集的大小(float型), 随机种子(相同的随机种子结果相同))
from sklearn.model_selection import train_test_split # 导入模块
x_train, x_test, y_train, t_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=22)
print("训练集样本大小",x_train.shape) # 输出:训练集样本大小 (120, 4)
print("训练集标签大小",y_train.shape) # 输出:训练集标签大小 (120,)
- 其他:
参考博客:
2)手写数字数据集:load_digits():用于分类任务或者降维任务的数据集
-
数据介绍:
- 手写数字数据集:load_digits():用于分类任务或者降维任务的数据集。
- 1797张样本图片,每个样本有64维特征(8*8像素的图像)和一个[0, 9]整数的标签
-
属性介绍:
见代码注释 -
代码示例:
# 手写数字数据集:load_digits():用于分类任务或者降维任务的数据集
# 1797张样本图片,每个样本有64维特征(8*8像素的图像)和一个[0, 9]整数的标签
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
# 加载数据集
digits = load_digits()
n_samples,n_features=digits.data.shape
print("共有 ", n_samples, " 个样本数据,每个样本有 ", n_features, " 个特征")
print("手写数字集的大小 --> ",digits.data.shape) #(1797, 64)
print("手写数字集的形状 --> ", digits.images.shape) #(1797, 8, 8)
# 证明:digits.data 是将 digits.images 按行展开成一行,共有1797行
# print(np.all(digits.images.reshape((1797,64)) == digits.data))
# print(np.all(digits.data.reshape((1797,8,8)) == digits.images))
# print(digits.target[63]) # 第63张图的表示是多少
# print("digits.keys() --> ",digits.keys()) # digits.keys() --> dict_keys(['data', 'target', 'target_names', 'images', 'DESCR'])
# # 显示第一张图片, 也可以用: plt.imshow(digits.images[0])
# plt.gray()
# plt.matshow(digits.images[0])
# plt.show()
# 显示手写数字 方法一:
fig=plt.figure(figsize=(6,6))
fig.subplots_adjust(left=0,right=1,bottom=0,top=1,hspace=0.05,wspace=0.05)
#绘制数字:每张图像8*8像素点
for i in range(64):
ax=fig.add_subplot(8,8,i+1,xticks=[],yticks=[])
ax.imshow(digits.images[i],cmap=plt.cm.binary,interpolation='nearest')
#用目标值标记图像
ax.text(0,7,str(digits.target[i]))
plt.show()
# # 显示手写数字 方法二:
# fig, ax = plt.subplots(
# nrows=2,
# ncols=5,
# sharex=True,
# sharey=True, )
# ax = ax.flatten()
# for i in range(10):
# ax[i].imshow(digits.data[i].reshape((8,8)), cmap='Greys', interpolation='nearest')
# plt.show()
- 其他:
参考博客:
3)乳腺癌数据集load-barest-cancer():简单经典的用于二分类任务的数据集
用的比较少,具体用法可以见官网
4)糖尿病数据集:load-diabetes():经典的用于回归认为的数据集,值得注意的是,这10个特征中的每个特征都已经被处理成0均值,方差归一化的特征值。
用的比较少,具体用法可以见官网
5)波士顿房价数据集:load-boston():经典的用于回归任务的数据集
- 数据介绍:
- 该数据集是一个回归问题。每个类的观察值数量是均等的,共有 506 个观察,13 个输入变量和1个输出变量。
- 每条数据包含房屋以及房屋周围的详细信息。其中包含城镇犯罪率,一氧化氮浓度,住宅平均房间数,到中心区域的加权距离以及自住房平均房价等等。
- 代码示例:
'''
样本数据集的特征默认是一个(506, 13)大小的矩阵,样本值是一个包含506个数值的向量。
'''
# 房价数据
from sklearn.datasets import load_boston # 波士顿房价数据,回归使用
from sklearn import linear_model
boston = load_boston()
data = boston.data
target = boston.target
print(data.shape) # 输出:(506, 13)
print(target.shape) # 输出: (506,)
- 其他:
参考博客:
6)体能训练数据集:load-linnerud():经典的用于多变量回归任务的数据集。
用的比较少,具体用法可以见[官网]