zoukankan      html  css  js  c++  java
  • 跑实验中的数据集划分实战

    Talk is cheap, show me the executable code!

    上文书说到样本划分,那具体如何操作呢?
    马上来举个栗子:

    1. 使用sklean进行打乱,然后按比例截取
    import sklearn
    import numpy as np
    # 生成数据
    X = np.linspace(1,10,10)
    Y = 2*X
    # 随机打乱
    X,Y = sklearn.utils.shuffle(X,Y,random_state=42)
    #按比例,依照打乱顺序进行划分
    FRAC = 0.8 
    sp = int(len(X)*FRAC)
    # 取得训练集合测试集
    X_train, Y_train = X[:sp],Y[:sp]
    X_test, Y_test = X[sp:],Y[sp:]
    # =====output=====
    print(X_train,Y_train,X_test,Y_test)
    

    2.如果原数据是dataframe,可以使用sample函数进行打乱

    import numpy as np
    import pandas as pd
    # 生成数据
    X = np.linspace(1,10,30)
    data_df = pd.DataFrame(list(zip(X,2*X)),columns=['data','pre_data'])
    
    #利用sample函数打乱数据
    data_df.sample(frac=1.0,random_state=42)
    # 按比例,依照打乱顺序进行划分
    FRAC = 0.8 
    sp = int(data_df.shape[0]*FRAC)
    #取得训练集合测试集
    X_train,Y_train = data_df.loc[:sp-1]['data'],data_df.loc[:sp-1]['pre_data']
    X_test, Y_test = data_df.loc[sp:]['data'],data_df.loc[sp:]['pre_data']
    
    #怕数据条数不对应,可以利用assert验证
    assert(X_train.shape[0]+X_test.shape[0]==data_df.shape[0])
    
    1. 在深度学习中也可以利用pytorch对数据进行划分
    import torch
    import torch.utils.data
    # 生成数据
    X = list(zip(np.linspace(1,10,10),2*np.linspace(1,10,10)))
    dataset = torch.utils.data.DataLoader(X)
    # 按比例划分,函数自带打乱功能
    FRAC = 0.8 
    sp = int(len(dataset)*FRAC)
    t_sp = len(dataset)-sp
    dataset_train,dataset_test = torch.utils.data.random_split(dataset,[sp,t_sp])
    # =====output=====
    dataset_train.indices,dataset_test.indices
    
  • 相关阅读:
    联考20200725 T1 String
    联考20200723 T1 数
    联考20200722 T3 积木
    联考20200722 T2 ACT4!无限回转!
    联考20200722 T1 集合划分
    联考20200721 T2 s2mple
    联考20200721 T1 s1mple
    联考20200719 T2 寻找规律
    联考20200719 T1 合并奶牛
    联考20200718 T2 树论
  • 原文地址:https://www.cnblogs.com/datasnail/p/13082303.html
Copyright © 2011-2022 走看看