随机数据生成

1. numpy随机数据生成

适合生成一些简单的samples.
API都在random类中,常见的API有:

随机数据生成
import numpy as np
import matplotlib.pyplot as plt

#rand(d0, d1, ..., dn)生成d0x,d1x...dn维的数组。数组的值在[0,1)之间-uniform
np.random.rand(3,2,3)  #3x2x2的数组

#randn(d0, d1, ..., dn)生成d0x,d1x...dn维的数组。数组的值服从N(0,1)的标准正态分布。
#服从N(μ,σ2)的正态分布,只需要在randn上每个生成的值x上做变换σx+μ即可,例如:
2*np.random.randn(3,2)+1         #3x2的数组,N(1,4)

np.random.randint(3, 6, size=[2,3])   #2x3的数据。取值范围为[3,6). 半开区间
np.random.randint(3, size=[2,3,4])    #2x3x4的数据。取值范围为最大值为3的整数。

# random_integers( ),与randint类似,区别在与取值范围是闭区间[low, high]。

#random_sample([size]), 随机的浮点数,在半开区间 [0.0, 1.0)Uniform。
#size只能是一个数字
#如果是区间[a,b),转换(b - a) * random_sample([size]) + a
 (5-2)*np.random.random_sample(3)+2   #[2,5)之间的3个随机数。

2. scikit-learn随机数据生成

API都在datasets类之中,可用来生成适合特定机器学习模型的数据。常用的API有:

  1. 用make_regression 生成回归模型的数据

  2. 用make_hastie_10_2,make_classification或者make_multilabel_classification生成分类模型数据

  3. 用make_blobs生成聚类模型数据

  4. 用make_gaussian_quantiles生成分组多维正态分布的数据

使用make_regression生成回归模型数据。几个关键参数有n_samples(生成样本数), n_features(样本特征数),noise(样本随机噪音)和coef(是否返回回归系数)。

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_regression
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(())  #对x轴label处理方式
plt.yticks([])
plt.show()

make_ gaussian_quantiles 生 成 分 组 多 维 正 态 分 布 的 数 据 \bf{ 生成分组多维正态分布的数据}
几个关键参数有n_samples(生成样本数), n_features(正态分布的维数),mean(特征均值), cov(样本协方差的系数), n_classes(数据在正态分布中按分位数分配的组数)。

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)
plt.show()

参考资料:随机数据生成API

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页