随机数据的生成

import numpy as np
# (1)random(d0,d1,....dn)用来生成d0*d1*....*dn维的数组。数组的值在[0,1)之间
np.random.rand(3,2,2)#生成一个3*2*2的数组

    array([[[0.10141273, 0.97087629],
        [0.57045156, 0.62780166]],

       [[0.15425975, 0.21828791],
        [0.03630166, 0.60174227]],

       [[0.20345412, 0.51719419],
        [0.77047215, 0.67555402]]])

# randn(d0,d1,....dn),也是用来生成d0*d1*...dn维的数组,不过数组的值服从N(0,1)的标准生态分布。
np.random.randn(3,2)#输出如下3*2的数组,这些值是N(0,1)的抽样数据;如果需要服从N(μ,σ2)的正态分布,只需要在randn上每个生成的值x上做变换σx+μ即可

Out[3]:
array([[ 0.34949238, -1.39017794],
       [ 1.27691143, -0.71375712],
       [-0.56303407,  0.96331818]])

# randint(low,[,high,size]),生成随机的大小为size的数据,size可以为整数,为矩阵位数,或者张量的位数,值位于半开区间[low,high)
np.random.randint(3,size=[2,3,4])

Out[4]:
array([[[2, 1, 0, 0],
        [2, 0, 0, 1],
        [1, 1, 1, 0]],

       [[1, 0, 0, 1],
        [2, 2, 2, 2],
        [0, 0, 0, 1]]])

# random_integers(low[,high,size]),和上面的randint类似,区别在于取值范围是闭区间【low,high】
# random_sample([size]),返回随机的浮点数,在半开区间【0.0,1.0)如果是其他区间【a,b),可以加以转换[a,b),可以加以转换(b-a*random_sample([size])+a
# scikit_learn随机数据生成api介绍
# sklearn生成随机数据的api都在datasets类之中,和numpy比起来,可以用来生成适合特定机器学习模型的数据。常见的api有:
# 1、用make_regression生成回归模型数据
# 2、用make_hastie_10_2,make_classification或者make_multilabel_classification生成分类模型数据
# 3、用make_blobs生成聚类模型数据
# 4、用make_gaussian_quantiles生成

# 1、回归模型随机数据
# 使用make_regression生成回归模型数据。几个关键参数有n_samples(生成样本数), n_features(样本特征数),noise(样本随机噪音)和coef(是否返回回归系数)。
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.datasets.samples_generator import make_regression
# X为样本特征,y为样本输出,coef为回归系数,共1000个样本,每个样本1个特征
X,y,coef = make_regression(n_samples=1000,n_features = 1,noise=10,coef=True)
# 画图
plt.scatter(X,y,color=‘black‘)
plt.plot(X,X*coef,color=‘blue‘,linewidth=3)
plt.xticks(())
plt.yticks(())
plt.show()

# 2、分类模型随机数据
# 用make_classification生成三元分类模型数据。几个关键参数有n_samples(生成样本数), n_features(样本特征数), n_redundant(冗余特征数)和n_classes(输出的类别数)
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.datasets.samples_generator import make_classification
# X1为样本特征,Y1为样本类别输出,共400个样本,每个样本2个特征,输出有3个类别,没有冗余特征,每个类别一个簇
X1,Y1 = make_classification(n_samples=400,n_features = 2,n_redundant=0,n_clusters_per_class=1,n_classes=3)
plt.scatter(X1[:,0],X1[:,1],marker=‘o‘,c=Y1)
plt.show()

#3、聚类模型随机数据
#用make_blobs生成聚类模型数据。几个关键参数有n_samples(生成样本数), n_features(样本特征数),centers(簇中心的个数或者自定义的簇中心)和cluster_std(簇数据方差,代表簇的聚合程度)
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.datasets.samples_generator import make_blobs
# X为样本特征,Y为样本簇类别,共1000个样本,每个样本2个特征,共3个簇,簇中心为[-1,-1],[1,1],[2,2],簇方差分别为[0.4,0.5,0.2]]
X,y = make_blobs(n_samples=1000,n_features=2,centers=[[-1,-1],[1,1],[2,2]],cluster_std=[0.4,0.5,0.2])
plt.scatter(X[:,0],X[:,1],marker=‘o‘,c=y)
plt.show()

# 4、分组正态分布混合数据
# 用make_gaussian_quantiles生成分组多维正态分布的数据。几个关键参数有n_samples(生成样本数), n_features(正态分布的维数),mean(特征均值), cov(样本协方差的系数), n_classes(数据在正态分布中按分位数分配的组数)。
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.datasets import make_gaussian_quantiles
# 生成2维正态分布,生成的数据按分位数分成3组,1000样本,2个样本均值为1和2,协方差系数为2
X1,Y1 =make_gaussian_quantiles(n_samples=1000,n_features=2,n_classes=3,mean=[1,2],cov=2)
plt.scatter(X1[:,0],X1[:,1],marker=‘o‘,c=Y1)

原文地址:https://www.cnblogs.com/spp666/p/11994499.html

时间: 2024-08-25 20:09:09

随机数据的生成的相关文章

2.13生成可控的随机数据集合 生成九个分布的直方图

import random import matplotlib import matplotlib.pyplot as plt size=1000 bucket=100 plt.figure() matplotlib.rcParams.update({'font.size': 7}) plt.subplot(621) plt.xlabel("random.random") res = [random.random() for _a in xrange(1,size)] plt.hist

机器学习算法的随机数据生成

在学习机器学习算法的过程中,我们经常需要数据来验证算法,调试参数.但是找到一组十分合适某种特定算法类型的数据样本却不那么容易.还好numpy, scikit-learn都提供了随机数据生成的功能,我们可以自己生成适合某一种模型的数据,用随机数据来做清洗,归一化,转换,然后选择模型与算法做拟合和预测.下面对scikit-learn和numpy生成数据样本的方法做一个总结. 1. numpy随机数据生成API numpy比较适合用来生产一些简单的抽样数据.API都在random类中,常见的API有:

Python一个可以生成随机数据的库

发现一个十分有用的库 faker,作用竟是可以生成各种各样的随机数据 新版本要使用 pip install fake-factory 而不能直接 pip install fake git:https://github.com/joke2k/faker文档:http://fake-factory.readthedocs.io/en/master/index.html 文档十分清楚, 用法就是这样的了, #-*- coding:utf-8 -*- from faker import Factory

mock的命名用一(生成随机数据)

Mock.Random 是一个工具类,用于生成各种随机数据. Mock.Random 的方法在数据模板中称为『占位符』,书写格式为 @占位符(参数 [, 参数]) . var Random = Mock.Random Random.email() // => "[email protected]" Mock.mock('@email') // => "[email protected]" Mock.mock( { email: '@email' } )

.NET使用Bogus生成大量随机数据

.NET如何生成大量随机数据 在演示Demo.数据库脱敏.性能测试中,有时需要生成大量随机数据.Bogus就是.NET中优秀的高性能.合理.支持多语言的随机数据生成库. Bogus的Github链接:https://github.com/bchavez/Bogus,图标如下: 安装Bogus 目前Bogus最新版是28.0.2,本文演示基本该版本,不保证官方以后会不会修改本文的使用方式. 使用Powershell: PM> Install-Package Bogus -Version 28.0.

随机数据生成与对拍

# 随机数据生成与对拍 引言 在漫长的\(OI\)生涯中,你肯定遇到过这些情况 在OI赛制下,你写了一份你自认为是正解的代码,但是你不确定自己是否考虑到了所有的细节,你不敢轻易提交 对于有些无法获得数据的题目,你不知道自己错在了哪里 对于能够获得数据的题目,你拿到的数据都是上万级别的数据,难以\(Debug\). 这时候,我们就可以试试随机数据生成与对拍` 什么是随机数据生成? 顾名思义,就是针对我们的需求生成随机的数据.比如生成随机的整数序列,生成随机的树,生成随机的图. 什么是对拍? 对拍说

MySQL查询随机数据的4种方法和性能对比

从MySQL随机选取数据也是我们最常用的一种发发,其最简单的办法就是使用”ORDER BY RAND()”,本文介绍了包括ORDER BY RAND()的4种获取随机数据的方法,并分析了各自的优缺点. 下面从以下四种方案分析各自的优缺点.方案一: 复制代码 代码如下: SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1; 这种方法的问题就是非常慢.原因是因为MySQL会创建一张零时表来保存所有的结果集,然后给每个结果一个随机索引,然后再排序并返回.有几

Python 中的POST/GET包构建以及随机字符串的生成-乾颐堂

现在,我们来用Python,创建GET包和POST包. 至于有什么用处,大家慢慢体会. Python 中包含了大量的库,作为一门新兴的语言,Python 对HTTP有足够强大的支持. 现在,我们引入新的库 httplib 以及 urllib 这两个库根据名称,我们可以知道他们是对于HTTP以及URL的操作. 首先我们先要与服务器建立连接.(我们以某微博作为例子实现下文的各种功能) conn = httplib.HTTPConnection("ti50*****com"); 只要没有提示

将表里的数据批量生成INSERT语句的存储过程 继续增强版

文章继续 桦仔兄的文章 将表里的数据批量生成INSERT语句的存储过程 增强版 继续增强... 本来打算将该内容回复于桦仔兄的文章的下面的,但是不知为何博客园就是不让提交!.... 所以在这里贴出来吧,算作继续增加文章中解决的:根据查询条件自动生成插入脚本的需求,其实这种需求还是蛮常见的. 本文着重解决了文中的脚本的schema问题,给调整了下,现在脚本能自动识别出不同的schema下同名的表的语句 修改后脚本如下: -- Author: <桦仔> -- Blog: <http://ww