哈尔滨网站建设推广方案,四川省建筑施工企业安管人员考试,建网站一般用什么工具,嘉兴建站服务除了内置的数据集#xff0c;scikit-learn还提供了随机样本的生成器。通过这些生成器函数#xff0c;可以生成具有特定特性和分布的随机数据集#xff0c;以帮助进行机器学习算法的研究、测试和比较。 目前#xff0c;scikit-learn库#xff08;v1.3.0版#xff09;中有2…除了内置的数据集scikit-learn还提供了随机样本的生成器。通过这些生成器函数可以生成具有特定特性和分布的随机数据集以帮助进行机器学习算法的研究、测试和比较。 目前scikit-learn库v1.3.0版中有20个不同的生成样本的函数。本篇重点介绍其中几个具有代表性的函数。 1. 分类聚类数据样本 分类和聚类是机器学习中使用频率最高的算法创建各种相关的样本数据能够帮助我们更好的试验算法。 1.1. make_blobs 这个函数通常用于可视化分类器的学习过程它生成由聚类组成的非线性数据集。 import matplotlib.pyplot as plt
from sklearn.datasets import make_blobsX, Y make_blobs(n_samples1000, centers5)
plt.scatter(X[:, 0], X[:, 1], markero, cY, s25)plt.show() 上面的示例生成了1000个点的数据分为5个类别。 make_blobs的主要参数包括 n_samples生成的样本数。 n_features每个样本的特征数。通常为2表示我们生成的是二维数据。 centers聚类的数量。即生成的样本会被分为多少类。 cluster_std每个聚类的标准差。这决定了聚类的形状和大小。 shuffle是否在生成数据后打乱样本。 random_state随机数生成器的种子。这确保了每次运行代码时生成的数据集都是一样的。 1.2. make_classification 这是一个用于生成复杂二维数据的函数通常用于可视化分类器的学习过程或者测试机器学习算法的性能。 import matplotlib.pyplot as plt
from sklearn.datasets import make_classificationX, Y make_classification(n_samples100, n_classes4, n_clusters_per_class1)
plt.scatter(X[:, 0], X[:, 1], markero, cY, s25)plt.show() 可以看出它生成的各类数据交织在一起很难做线性的分类。 make_classification的主要参数包括 n_samples生成的样本数。 n_features每个样本的特征数。这个参数决定了生成的数据集的维度。 n_informative具有信息量的特征的数量。这个参数决定了特征集中的特征有多少是有助于分类的。 n_redundant冗余特征的数量。这个参数决定了特征集中的特征有多少是重复或者没有信息的。 random_state随机数生成器的种子。这确保了每次运行代码时生成的数据集都是一样的。 1.3. make_moons 和函数名称所表达的一样它是一个用于生成形状类似于月牙的数据集的函数通常用于可视化分类器的学习过程或者测试机器学习算法的性能。 from sklearn.datasets import make_moonsfig, ax plt.subplots(1, 3)
fig.set_size_inches(9, 3)X, Y make_moons(noise0.01, n_samples1000)
ax[0].scatter(X[:, 0], X[:, 1], markero, cY, s25)
ax[0].set_title(noise0.01)X, Y make_moons(noise0.05, n_samples1000)
ax[1].scatter(X[:, 0], X[:, 1], markero, cY, s25)
ax[1].set_title(noise0.05)X, Y make_moons(noise0.5, n_samples1000)
ax[2].scatter(X[:, 0], X[:, 1], markero, cY, s25)
ax[2].set_title(noise0.5)plt.show() noise越小数据的分类越明显。 make_moons的主要参数包括 n_samples生成的样本数。 noise在数据集中添加的噪声的标准差。这个参数决定了月牙的噪声程度。 random_state随机数生成器的种子。这确保了每次运行代码时生成的数据集都是一样的。 2. 回归数据样本 除了分类和聚类回归是机器学习的另一个重要方向。scikit-learn同样也提供了创建回归数据样本的函数。 from sklearn.datasets import make_regressionfig, ax plt.subplots(1, 3)
fig.set_size_inches(9, 3)X, y make_regression(n_samples100, n_features1, noise20)
ax[0].scatter(X[:, 0], y, markero)
ax[0].set_title(noise20)X, y make_regression(n_samples100, n_features1, noise10)
ax[1].scatter(X[:, 0], y, markero)
ax[1].set_title(noise10)X, y make_regression(n_samples100, n_features1, noise1)
ax[2].scatter(X[:, 0], y, markero)
ax[2].set_title(noise1)plt.show() 通过调节noise参数可以创建不同精确度的回归数据。 make_regression的主要参数包括 n_samples生成的样本数。 n_features每个样本的特征数。通常为一个较小的值表示我们生成的是一维数据。 noise噪音的大小。它为数据添加一些随机噪声以使结果更接近现实情况。 3. 流形数据样本 所谓流形数据就是S形或者瑞士卷那样旋转的数据可以用来测试更复杂的分类模型的效果。比如下面的make_s_curve函数就可以创建S形的数据 from sklearn.datasets import make_s_curveX, Y make_s_curve(n_samples2000)fig, ax plt.subplots(subplot_kw{projection: 3d})
fig.set_size_inches((8, 8))
ax.scatter(X[:, 0], X[:, 1], X[:, 2], cY, s60, alpha0.8)
ax.view_init(azim-60, elev9)
plt.show() 4. 总结 本文介绍的生成样本数据的函数只是scikit-learn库中各种生成器的一部分还有很多种其他的生成器函数可以生成更加复杂的样本数据。 所有的生成器函数请参考文档API Reference — scikit-learn 1.3.2 documentation 文章转载自wang_yb
原文链接https://www.cnblogs.com/wang_yb/p/17884401.html