您现在的位置是:首页 >技术教程 >训练机器学习模型,可使用 Sklearn 提供的 16 个数据集 【下篇】网站首页技术教程
训练机器学习模型,可使用 Sklearn 提供的 16 个数据集 【下篇】
数据是机器学习算法的动力,scikit-learn或sklearn提供了高质量的数据集,被研究人员、从业人员和爱好者广泛使用。Scikit-learn(sklearn)是一个建立在SciPy之上的机器学习的Python模块。它的独特之处在于其拥有大量的算法、十分易用以及能够与其他Python库进行整合。
什么是 “Sklearn数据集”?
Sklearn数据集作为scikit-learn(sklearn)库的一部分,所以它们是预先安装在库中的。因此,我们可以很容易地访问和加载这些数据集,而不需要单独下载它们。
要使用这些其中一个特定的数据集,可以简单地从sklearn.datasets模块中导入,并调用适当的函数将数据加载到程序中。
这些数据集通常都是经过预处理的,可以随时使用,这对于需要试验不同机器学习模型和算法的数据从业者来说,可以节省大量时间和精力。
真实的Sklearn数据集
7. Boston Housing
波士顿住房数据集包含了马萨诸塞州波士顿地区的住房信息。它有大约506行和14列的数据。
数据集中的一些变量包括:
- CRIM - 各镇的人均犯罪率。
- INDUS - 每个城镇的非零售商业用地比例。
- CHAS - 查尔斯河虚拟变量(=1,如果区块与河流相连;否则为0)。
- NOX - 一氧化氮的浓度(每1000万份)。
- RM - 每个住宅的平均房间数。
- AGE - 1940年以前建造的自建房的比例。
- DIS - 到波士顿五个就业中心的加权距离。
- RAD - 辐射状高速公路的可达性指数。
- TAX - 每10,000美元的财产税全额税率。
- PTRATIO - 各镇的学生-教师比率。
- B - 1000(Bk - 0.63)^2,其中-Bk是各镇黑人的比例。
- LSTAT - 人口中地位较低的百分比。
- MEDV - 业主自住房屋的中位价值,单位为1000美元。
可以使用sklearn.datasets模块的load_boston函数直接从scikit-learn加载波士顿住房数据集。
from sklearn.datasets import load_boston
# Load the Boston Housing dataset
boston = load_boston()
# Print the dataset description
print(boston.describe())
以上是使用sklearn加载波士顿住房数据集的代码。于2023年3月29日从https://scikit-learn.org/0.15/modules/generated/sklearn.datasets.load_boston.html获取。
8. Olivetti Faces
奥利维蒂人脸数据集是1992年4月至1994年4月期间在AT&T实验室拍摄的人脸灰度图像的集合。它包含10个人的400张图像,每个人有40张在不同角度和不同光线条件下拍摄的图像。
你可以通过使用数据集模块中的fetch_olivetti_faces函数在sklearn中加载Olivetti脸部数据集。
from sklearn.datasets import fetch_olivetti_faces
# Load the dataset
faces = fetch_olivetti_faces()
# Get the data and target labels
X = faces.data
y = faces.target
这是使用sklearn加载Olivetti Faces数据集的代码。于2023年3月29日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.fetch_olivetti_faces.html获取。
9. California Housing
这个sklearn数据集包含了关于房屋价值中位数的信息,以及加利福尼亚的人口普查区的属性。它还包括20,640个实例和8个特征。
数据集中的一些变量:
MedInc–街区的收入中位数。
HouseAge - 街区内房屋的中位年龄。
AveRooms - 每个家庭的平均房间数。
AveBedrms - 每个家庭的平均卧室数量。
Population - 街区的人口。
AveOccup–家庭平均占用率。
Latitude - 街区的纬度,以十进制为单位。
Longitude - 街区的经度,以小数点后的度数表示。
你可以使用sklearn的fetch_california_housing函数来加载加州住房数据集。
from sklearn.datasets import fetch_california_housing
# Load the dataset
california_housing = fetch_california_housing()
# Get the features and target variable
X = california_housing.data
y = california_housing.target
使用sklearn加载加州住房数据集的代码。于2023年3月29日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.fetch_california_housing.html获取。
10. MNIST
MNIST数据集在机器学习和计算机视觉领域很受欢迎并被广泛使用。它由70,000张手写数字0-9的灰度图像组成,其中60,000张用于训练,10,000张用于测试。每张图像的大小为28x28像素,并有一个相应的标签,表示它所代表的数字。
你可以使用以下代码从sklearn加载MNIST数据集:
from sklearn.datasets import fetch_openml
mnist = fetch_openml('mnist_784')
注意:MNIST数据集是Digits数据集的一个子集。
上面是使用sklearn加载MNIST数据集的代码。于2023年3月30日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.fetch_openml.html#sklearn.datasets.fetch_openml获取。
11. Fashion-MNIST
Fashion-MNIST 数据集是由Zalando Research创建的,作为原始MNIST数据集的替代。Fashion-MNIST数据集由70,000张灰度图像组成(训练集60,000张,测试集10,000张),都是服装相关的内容。
这些图像大小为28x28像素,代表了10个不同类别的服装,包括T恤/上衣、长裤、套头衫、连衣裙、大衣、凉鞋、衬衫、运动鞋、包和踝靴。它类似于原始的MNIST数据集,但由于服装类别的复杂性和种类更多,分类任务更具挑战性。
你可以使用fetch_openml函数加载这个sklearn数据集。
from sklearn.datasets import fetch_openml
fmnist = fetch_openml(name='Fashion-MNIST')
使用sklearn加载Fashion-MNIST数据集的代码。取自 https://scikit-learn.org/stable/modules/generated/sklearn.datasets.fetch_openml.html#sklearn.datasets.fetch_openml。
Generated Sklearn数据集
Generated Sklearn数据集是合成数据集,使用Python的sklearn库生成。它们被用于测试、基准测试和开发机器学习算法/模型。
12. make_classification
这个函数生成一个随机的n类分类数据集,具有指定数量的样本、特征和信息特征。
下面是一个生成这个sklearn数据集的示例代码,有100个样本、5个特征和3个类:
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=100, n_features=5, n_informative=3, n_classes=3, random_state=42)
这段代码生成了一个有100个样本和5个特征的数据集,其中有3个类和3个信息性特征。剩下的特征将是多余的或是数据噪声。
使用sklearn加载make_classification数据集的代码。于2023年3月30日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_classification.html#sklearn.datasets.make_classification获取。
13. make_regression
这个函数生成一个具有指定数量的样本、特征和数据噪音的随机回归数据集。
下面是生成这个sklearn数据集的示例代码,有100个样本,5个特征,数据噪音水平为0.1:
from sklearn.datasets import make_regression
X, y = make_regression(n_samples=100, n_features=5, noise=0.1, random_state=42)
这段代码生成了一个有100个样本和5个特征的数据集,噪声水平为0.1。目标变量y将是一个连续变量。
使用sklearn加载make_regression数据集的代码。于2023年3月30日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_regression.html#sklearn.datasets.make_regression获取。
14. make_blobs
这个函数生成一个具有指定数量的样本和聚类的随机数据集。
下面是一个生成具有100个样本和3个聚类的sklearn数据集的示例代码:
from sklearn.datasets import make_blobs
X, y = make_blobs(n_samples=100, centers=3, random_state=42)
这段代码生成了一个有100个样本和2个特征(x和y坐标)的数据集,有3个以随机位置为中心的聚类,并且没有噪音数据。
上面是使用sklearn加载make_blobs数据集的代码。于2023年3月30日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_blobs.html#sklearn.datasets.make_blobs获取。
15. make_moons and make_circles
这些函数生成具有非线性边界的数据集,对测试非线性分类算法很有用。
下面是一个加载make_moons数据集的示例代码:
from sklearn.datasets import make_moons
X, y = make_moons(n_samples=1000, noise=0.2, random_state=42)
这段代码生成了一个有1000个样本和2个特征(x和y坐标)的数据集,两类之间有一个非线性的边界,并且在数据中加入了0.2个标准差的高斯噪声。
使用sklearn加载make_moons数据集的代码。2023年3月30日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_moons.html#sklearn.datasets.make_moons。
下面是一个生成和加载make_circles数据集的示例代码:
from sklearn.datasets import make_circles
X, y = make_circles(n_samples=1000, noise=0.05, random_state=42)
使用sklearn加载make_circles数据集的代码。于2023年3月30日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_circles.html#sklearn.datasets.make_circles获取。
16. make_sparse_coded_signal
这个函数生成了一个稀疏编码信号数据集,对测试压缩感应算法很有用。
下面是一个加载这个sklearn数据集的示例代码:
from sklearn.datasets import make_sparse_coded_signal
X, y, w = make_sparse_coded_signal(n_samples=100, n_components=10, n_features=50, n_nonzero_coefs=3, random_state=42)
这段代码生成了一个有100个样本、50个特征和10个原子的稀疏编码信号数据集。
使用sklearn加载make_sparse_coded_signal数据集的代码。2023年3月30日从https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_sparse_coded_signal.html#sklearn-datasets-make-sparse-coded-signal。
使用Sklearn数据集的常见场景
-
Iris - 这个Sklearn数据集通常用于分类任务,并被用作测试分类算法的基准数据集。
-
Diabetes - 这个数据集包含糖尿病患者的医疗信息,用于医疗分析中的分类和回归任务。
-
Digits - 这个sklearn数据集包含手写数字的图像,通常用于图像分类和模式识别任务。
-
Linnerud - 这个数据集包含20名运动员的体能和医疗数据,通常用于多变量回归分析。
-
Wine - 这个sklearn数据集包含葡萄酒的化学分析,通常用于分类和聚类任务。
-
Breast Cancer Wisconsin - 这个数据集包含乳腺癌患者的医疗信息,通常用于医疗分析中的分类任务。
-
Boston Housing - 这个sklearn数据集包含关于波士顿住房的信息,通常用于回归任务。
-
Olivetti Faces - 该数据集包含人脸的灰度图像,通常用于图像分类和面部识别任务。
-
California Housing - 这个sklearn数据集包含关于加州住房的信息,通常用于回归任务。
-
MNIST - 这个数据集包含手写数字的图像,通常用于图像分类和模式识别任务。
-
Fashion-MNIST - 这个sklearn数据集包含服装项目的图像,通常用于图像分类和模式识别任务。
-
make_classification - 这个数据集是一个随机生成的数据集,用于二进制和多类别分类任务。
-
make_regression - 这个数据集是一个随机生成的数据集,用于回归任务。
-
make_blobs - 这个sklearn数据集是一个随机生成的数据集,用于聚类任务。
-
make_moons 和 make_circles - 这些数据集是为分类任务随机生成的数据集,通常用于测试非线性分类器。
-
make_sparse_coded_signal - 这个数据集是一个随机生成的数据集,用于信号处理中的稀疏编码任务。