前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >scikit-learn生成数据集

scikit-learn生成数据集

作者头像
爱编程的小明
发布2022-09-05 17:06:07
6950
发布2022-09-05 17:06:07
举报
文章被收录于专栏:小明的博客

生成数据集

为了方便用户学习机器学习和数据挖掘的方法,机器学习库scikit-learn的数据集模块sklearn.datasets提供了20个样本生成函数,为分类、聚类、回归、主成分分析等各种机器学习方法生成模拟的样本集。

分类、聚类问题样本生成器

make_blobs()方法
代码语言:javascript
复制
sklearn.datasets.make_blobs(n_samples=100, 
    n_features=2, centers=3, cluster_std=1.0, 
    center_box=(-10.0, 10.0), shuffle=True, 
    random_state=None)
image.png
image.png

center_box表示中心由随机数产生时的随机数产生的上下界 random_state表示样本数据的随机数产生方法 sklearn.datasets.make_blobs()函数能够生成指定样本数量、特征数量、类别数量、类别中心、类别样本标准差的分类样本集。

代码语言:javascript
复制
from sklearn.datasets.samples_generator import
    make_blobs
X, y = make_blobs(n_samples=100, centers=2, 
    n_features=2,  random_state=0)#centers = [(-5, 0), (5, 2)],指定中心
#可视化
plt.figure(figsize=(6, 4))
plt.scatter(X[:,0],X[:,1],c=y)
plt.title('使用make_blobs生成2类样本')#添加标题
plt.show()
双圆形数据集生成
代码语言:javascript
复制
sklearn.datasets.make_circles(n_samples=100, shuffle=True, noise=None, random_state=None, factor=0.8)

双圆形数据集生成器生成两个同心圆并叠加噪声的二元分类样本集。

代码语言:javascript
复制
n_samples = 500
X, y = datasets.make_circles(n_samples=n_samples, factor=.5,
                                      noise=.05)
print('circles特征集X的形状为',X.shape)
print('circles类标签y的形状为',y.shape)
print('circles特征集X的前5行为:\n',X[0:5,:])
print('circles类标签y的前5个值为:',y[0:5])
#可视化
plt.figure(figsize=(6, 4))
plt.scatter(X[:,0],X[:,1],c=y,label="Class ")
plt.title('使用make_circles生成的样本')#添加标题
plt.show()
image.png
image.png
交错半圆形数据集
代码语言:javascript
复制
sklearn.datasets.make_moons(n_samples=100, shuffle=True, noise=None, random_state=None)
代码语言:javascript
复制
X, y = datasets.make_moons(n_samples=n_samples, noise=.05)
print('moons特征集X的形状为',X.shape)
print('moons类标签y的形状为',y.shape)
print('moons特征集X的前5行为:\n',X[0:5,:])
print('moons类标签y的前5个值为:',y[0:5])
#可视化
plt.figure(figsize=(6, 4))
plt.scatter(X[:,0],X[:,1],c=y,label="Class ")
plt.title('使用make_moons生成的样本')#添加标题
plt.show()
image.png
image.png

分类样本生成器make_classification()方法

用来生成特征间具有相关性、冗余或者未知噪声的样本,用于数据预处理和主成分分析等模型的训练。

代码语言:javascript
复制
sklearn.datasets.make_classification(n_samples=100, n_features=20, n_informative=2, n_redundant=2, n_repeated=0, n_classes=2, n_clusters_per_class=2, weights=None, flip_y=0.01, class_sep=1.0, hypercube=True, shift=0.0, scale=1.0, shuffle=True, random_state=None)
image.png
image.png

用以生成指定样本数量、类别数量、特征数量、冗余特征数量等指标的样本。

代码语言:javascript
复制
from sklearn import datasets
#使用make_classification生成分类样本,
#在样本中引入相关的,冗余的和未知的噪音
X, y = datasets.make_classification(n_samples=100, n_features=10,
                                   n_informative=6, n_redundant=2,
                                    n_classes=3,random_state=42)
print('分类特征集X的形状为',X.shape)
print('类标签y的形状为',y.shape)
print('分类特征集X的前5行为:\n',X[0:5,:])
print('类标签y的前5个值为:',y[0:5])

回归问题样本生成器make_regression()方法

代码语言:javascript
复制
sklearn.datasets.make_regression(n_samples=100, n_features=100, n_informative=10, n_targets=1, bias=0.0, effective_rank=None, tail_strength=0.5, noise=0.0, shuffle=True, coef=False, random_state=None)
image.png
image.png

bias表示偏置指标

代码语言:javascript
复制
X, y = datasets.make_regression(n_samples=100, n_features=4, 
                                random_state=0, noise=4.0,
                                bias=100.0)
print('特征集X的形状为',X.shape)
print('y的形状为',y.shape)
print('特征集X的前5行为:\n',X[0:5,:])
print('y的前5个值为:',y[0:5])

访问数据集

访问内部数据集

scikit-learn的datasets模块自带了一些数据集,包括鸢尾花数据集、波士顿房价数据集、红酒数据集、糖尿病数据集、乳腺癌数据集等。用户可以使用形如datasets.load_dataset_name()的命令加载数据集,用于分类、聚类、回归等问题的练习。由于事先不知道数据集的内容,可以通过打印该数据集的对象名字来观察数据集的全部内容,查看其data,target,feature_names等内容,属性,以及数据集的介绍等。

代码语言:javascript
复制
#例5-11 加载scikit-learn自带数据集iris
from sklearn import 
datasetsiris = datasets.load_iris()
#print('iris的内容为:\n',iris)
#print('iris.data的内容为:\n',iris.data)
print('iris.data的形状为:',iris.data.shape)
print('iris.target的内容为:\n',iris.target)
print('iris.target的形状为:',iris.target.shape)print('iris.target的鸢尾花名称为:\n',iris.target_names)
image.jpg
image.jpg
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 生成数据集
    • 分类、聚类问题样本生成器
      • make_blobs()方法
      • 双圆形数据集生成
      • 交错半圆形数据集
    • 分类样本生成器make_classification()方法
      • 回归问题样本生成器make_regression()方法
      • 访问数据集
        • 访问内部数据集
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档