• 打乱数据集的方法


    原始数据存在一定的分布规律,所以学习曲线不平滑,如果数据量够大的话,打乱后会呈现随机分布,学习后更能体现样本的共性。为了加强模型的泛化能力,有时候需要打乱数据集(包括特征数据和标签),但是显然还是要保证每一条数据中的特征数据和标签的对应关系
    可以进行如下操作:
    1.通过随机化index

    import random
    index = [i for i in range(len(data))] 
    random.shuffle(index)
    data = data[index]
    label = label[index]
    

    2.将数据集 特征数据和标签先整合成一个array再随机化行的顺序

    s_data = np.array([data, labels])#假设data和labels均为二维数组
    s_data = s_data.transpose(1,0,2)
    np.random.shuffle(s_data)
    data = s_data[:,0,:]     
    labels = s_data[:,1,:]
    

    PS:numpy中函数shuffle与permutation都是对原来的数组随机打乱原来的顺序,shuffle中文含义为洗牌,permutation中文含义为排列,区别在于shuffle直接在原来的数组上进行操作,改变原来数组的顺序,无返回值。而permutation不直接在原来的数组上进行操作,而是返回一个新的打乱顺序的数组,并不改变原来的数组。

    import numpy as np
    a = np.arange(9)
    print("a:",a)
    np.random.shuffle(a)
    print("a:",a)
    b = np.random.permutation(a)
    print("b:",b)
    print("a:",a)
    

    输出为:

    a: [0 1 2 3 4 5 6 7 8]
    a: [1 7 8 0 5 3 2 4 6]
    b: [5 1 8 3 6 4 2 7 0]
    a: [1 7 8 0 5 3 2 4 6]
    
  • 相关阅读:
    golang中,new和make的区别
    k8s客户端库
    k8s 拉取私有镜像
    kubernetes-client / python
    k8s集群外go客户端示例
    K8s获取NodePort
    KUBERNETES中的服务发现机制与方式
    Rancher容器目录持久化
    rancher k8s 实现pod弹性伸缩
    在Terminal里,使用Shift+Insert来代替鼠标右键来进行粘贴操作
  • 原文地址:https://www.cnblogs.com/hayley111/p/13692522.html
Copyright © 2020-2023  润新知