zoukankan      html  css  js  c++  java
  • 随机数据的生成

    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)
  • 相关阅读:
    024.Zabbix告警等级机制
    023.Zabbix自定义(邮箱)脚本告警-02
    022.Zabbix自定义(邮箱)脚本告警01
    021.Zabbix的邮件告警-01
    020.Zabbix的Actions配置
    019.Zabbix的Trigger及相关函数
    018.Zabbix维护时间和模板导入
    017.Zabbix宏介绍
    016.Zabbix聚合监控
    015.Zabbix的日志监控配置
  • 原文地址:https://www.cnblogs.com/spp666/p/11994499.html
Copyright © 2011-2022 走看看